openssl 制作SM2多级证书链

网上很多关于RSA制作多级证书链的文章,没有发现一个完整SM2多级证书链生成方法,根据RSA的文章各种摸索,进雪山,入沼泽,终于…… !!!BINGO!!!

生成一级CA密钥对

openssl ecparam -genkey -name SM2 -out keys/RootCA.key

CA自签名

openssl req -new -x509 -sm3 -key keys/RootCA.key -out keys/RootCA.cer -days 10000 -subj '/C=CN/O=BJKD/OU=GD_SM2'

生成二级CA密钥对

openssl ecparam -genkey -name SM2 -out keys/SecondCA.key

生成二级CA请求

openssl req -new -sm3 -key keys/SecondCA.key -out keys/SecondCA.csr -days 10000 -subj '/C=CN/O=BJKD/OU=BJ_SM2'

一级CA签发二级CA请求

openssl ca -extensions v3_ca -in keys/SecondCA.csr -config /etc/pki/tls/openssl.cnf -days 10000 -out keys/SecondCA.crt -cert keys/RootCA.cer -keyfile keys/RootCA.key
openssl x509 -in keys/SecondCA.crt -out keys/SecondCA.cer #将crt转换为cer格式

生成三级CA

openssl ecparam -genkey -name SM2 -out keys/ThirdCA.key

生成三级CA请求

openssl req -new -sm3 -key keys/ThirdCA.key -out keys/ThirdCA.csr -days 10000 -subj '/C=CN/O=BJKD/OU=HD_SM2'

二级CA签发三级CA证书

openssl ca -extensions v3_ca -in keys/ThirdCA.csr -config /etc/pki/tls/openssl.cnf -days 10000 -out keys/ThirdCA.crt -cert keys/SecondCA.cer -keyfile keys/SecondCA.key
openssl x509 -in keys/ThirdCA.crt -out keys/ThirdCA.cer #将crt转换为cer格式

三级根签发设备证书

openssl ca -extensions v3_ca -in keys/dev.csr -config /etc/pki/tls/openssl.cnf -days 10000 -out keys/dev.crt -cert keys/ThirdCA.cer -keyfile keys/ThirdCA.key
openssl x509 -in keys/dev.crt -out keys/dev.cer #将crt转换为cer格式

Q&A:

  1. 报错The mandatory stateOrProvinceName field was missing。
根本原因:证书请求信息(countryName……)需要和CA的匹配 ;可以改/etc/pki/tls/openssl.cnf 下policy有三个match,改成optional
[policy_match]下的对应字段改为optional,改为不匹配模式    
ca段的policy中指定为match和supplied一定要指定
  1. 签发的证书默认使用的摘要算法为sha256,当需要SM3时,需将/etc/pki/tls/openssl.cnf的
[ca] 字段下的
default_md  = sha256
改为
default_md  = sm3 
  1. 证书编码的转换
PEM转为DER openssl x509 -in cert.crt -outform der -out cert.der
DER转为PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
  1. windows 安装openssl,通过choco安装,choco install openssl,choco安装自行百度,证书链生成步骤windows和linxu一样;

附-神贴:OpenSSL主配置文件openssl.cnf参数说明

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值