当前位置: 首页 > news >正文

gmssl常用命令 - 需要持续更新

1. 生成私钥
OpenSSL (RSA)
# 生成RSA私钥
openssl genrsa -out private_key.key 2048
# 生成RSA私钥(带密码)
openssl genrsa -out private_key.key -aes256 -passout pass:password 2048GMSSL (SM2)
# 生成SM2私钥
gmssl ecparam -genkey -name sm2p256v1 -out private_key.key
# 或者使用gmssl专用命令
gmssl sm2 -genkey -out private_key.key
# 生成SM2私钥(带密码)
gmssl sm2 -genkey -out private_key.key -passout pass:password2. 生成证书请求 (CSR)
OpenSSL
# 生成证书请求
openssl req -new -key private_key.key -out cert.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=example.com"
# 交互式生成
openssl req -new -key private_key.key -out cert.csrGMSSL
# 生成SM2证书请求
gmssl req -new -key private_key.key -out cert.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=example.com"
# 交互式生成
gmssl req -new -key private_key.key -out cert.csr
# 指定签名算法(国密)
gmssl req -new -key private_key.key -out cert.csr -sm3 -sigopt "distid:1234567812345678"3. 生成自签名证书
OpenSSL
# 生成自签名证书
openssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.crt
# DER格式
openssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.der -outform DERGMSSL
# 生成SM2自签名证书
gmssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.crt -sm3 -sigopt "distid:1234567812345678"
# DER格式
gmssl x509 -req -days 365 -in cert.csr -signkey private_key.key -out cert.der -outform DER -sm34. 查看证书信息
OpenSSL
# 查看PEM格式证书
openssl x509 -in cert.crt -text -noout
# 查看DER格式证书
openssl x509 -in cert.der -inform DER -text -noout
# 查看证书主题
openssl x509 -in cert.crt -subject -nooutGMSSL
# 查看SM2证书(语法相同)
gmssl x509 -in cert.crt -text -noout
# 查看从证书中提出的公钥文件的内容(16进制公钥)
$GMSSL_PATH ec -pubin -in ../cert_path/pub_key.pem -text -noout
# 查看DER格式
gmssl x509 -in cert.der -inform DER -text -noout
# 查看证书主题
gmssl x509 -in cert.crt -subject -noout5. 查看私钥信息
OpenSSL
# 查看RSA私钥
openssl rsa -in private_key.key -text -noout
# 查看私钥(带密码)
openssl rsa -in private_key.key -text -noout -passin pass:passwordGMSSL
# 查看SM2私钥
gmssl ec -in private_key.key -text -noout
# 或者
gmssl sm2 -in private_key.key -text -noout
# 查看私钥(带密码)
gmssl sm2 -in private_key.key -text -noout -passin pass:password6. PKCS#12 格式转换
OpenSSL
# 生成PKCS12文件
openssl pkcs12 -export -out cert.p12 -inkey private_key.key -in cert.crt -passout pass:password
# 从PKCS12提取证书和私钥
openssl pkcs12 -in cert.p12 -nodes -out cert_and_key.pem -passin pass:passwordGMSSL
# 生成SM2的PKCS12文件
gmssl pkcs12 -export -out cert.p12 -inkey private_key.key -in cert.crt -passout pass:password
# 从PKCS12提取(语法相同)
gmssl pkcs12 -in cert.p12 -nodes -out cert_and_key.pem -passin pass:password7. 证书格式转换
OpenSSL
# PEM转DER
openssl x509 -in cert.crt -outform DER -out cert.der
# DER转PEM
openssl x509 -in cert.der -inform DER -outform PEM -out cert.crtGMSSL
# PEM转DER(语法相同)
gmssl x509 -in cert.crt -outform DER -out cert.der
# DER转PEM
gmssl x509 -in cert.der -inform DER -outform PEM -out cert.crt8. 验证证书
OpenSSL
# 验证证书
openssl verify -CAfile ca.crt cert.crt
# 验证证书链
openssl verify -CAfile ca.crt -untrusted intermediate.crt cert.crtGMSSL
# 验证SM2证书(语法相同)
gmssl verify -CAfile ca.crt cert.crt
# 验证证书链
gmssl verify -CAfile ca.crt -untrusted intermediate.crt cert.crt9. 加密/解密
OpenSSL
# RSA加密
openssl rsautl -encrypt -in plaintext.txt -out encrypted.bin -inkey public_key.pem -pubin
# RSA解密
openssl rsautl -decrypt -in encrypted.bin -out decrypted.txt -inkey private_key.keyGMSSL
# SM2加密
gmssl sm2utl -encrypt -in plaintext.txt -out encrypted.bin -pubin -inkey public_key.pem
# SM2解密
gmssl sm2utl -decrypt -in encrypted.bin -out decrypted.txt -inkey private_key.key10. 签名/验签
OpenSSL
# RSA签名
openssl dgst -sha256 -sign private_key.key -out signature.bin data.txt
# RSA验签
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txtGMSSL
# SM2签名(使用SM3)
gmssl dgst -sm3 -sign private_key.key -out signature.bin data.txt
# SM2验签
gmssl dgst -sm3 -verify public_key.pem -signature signature.bin data.txt
# 或者使用sm2utl
gmssl sm2utl -sign -in data.txt -out signature.bin -inkey private_key.key
gmssl sm2utl -verify -in data.txt -signature signature.bin -pubin -inkey public_key.pem11. 提取公钥
$GMSSL_PATH x509 -in test1102_py/aaa.pem -pubkey -noout

 

http://www.rkmt.cn/news/46772.html

相关文章:

  • 实用指南:根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型
  • 转转客服IM聊天系统背后的技术挑战和实践分享
  • 实验 5:ViT Swin Transformer
  • chatTTS源码版本地部署踩的坑
  • 第一讲机器学习基础
  • 第二十八天
  • 102302138 林楚涵 作业2
  • PWM妙用:解锁LED亮度调节与呼吸灯的LuatOS开发之旅
  • 主子式与顺序主子式
  • JAVA 随机函数
  • CF1327F AND Segments
  • Kimi会员双11砍价成功!0.99元首月链接分享
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置) - 实践
  • 通用cursor rules总结
  • 锡林郭勒西林瓶灌装清洗耗材月成本分析?查行情享优惠
  • AI Agent OS 探索有价值的论文分析(1):Sleep-time Compute
  • 宏定义的高级应用
  • 被问性能后,我封装了这个 PHP 错误上报工具
  • 公众号中的贴纸素材有什么作用?在哪里找?
  • 公众号怎么起爆款标题?有什么好用的工具?
  • 邢台西林瓶灌装机优选指南:聚焦资质、案例与售后
  • 2025年机械磨优质厂家权威推荐榜单:冲击磨/小型机械磨/超微机械磨源头厂家精选
  • jQuery custom content scroller滚动条控件代码 - 教程
  • 搭建第一个MCP服务
  • 2025日本留学中介推荐:留学申请与语言学习一站式解决
  • 深度学习模型CNN识别恶意软件
  • 代码实例:Python 爬虫抓取与解析 JSON 数据 - 实践
  • 2025年11月上海老房翻新公司排名榜:十家口碑对比与选择指南
  • 2025年11月油烟机品牌排行:从静音到变频五大机型实测评价
  • vue3+vite使用 tailwindcss.css搭建