网上很多关于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参数说明

openssl 制作SM2多级证书链相关推荐

  1. 如何使用Openssl 制作CA证书

    一.SSL协议百科名片 SSL是Secure Socket Layer(安全套接层协议),可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标 ...

  2. java制作SM2证书

    原文地址:Fight With Me!!! 制作SM2证书 前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要 ...

  3. 使用openssl制作https的证书

    1.前言 现在的web应用对安全越来越重视了,很多应用必须采用https来传输数据.但是https必须要有证书,在开发和测试环境一般我们在没条件采用ca签发的可信证书的情况下,我们可以使用openss ...

  4. Java使用openssl详解(openssl安装教程、openssl制作证书、java代码实现openssl、浏览器通过https访问后端)入门

    安装openssl 通过官网的下载源码编译或者直接通过exe文件直接下一步下一步安装完成,网上教程很多! openssl制作证书 先创建3个目录 certificate.service .client ...

  5. OpenSSL生成 SM2公私钥

    OpenSSL生成 SM2公私钥 当前形势 国密局字[2011]50号"关于做好公钥密码算法升级工作的通知", 要求新投入运行并使用公钥密码的信息系统,应使用SM2椭圆曲线密码算法 ...

  6. openssl 1.1.1b 如何制作SM2公钥(在Ubuntu 19.04下测试通过)

    liuqun@vmware:~$ openssl ecparam -list_curvessecp112r1 : SECG/WTLS curve over a 112 bit prime fields ...

  7. openssl 签发sm2证书_首个NSA公开披露的软件系统漏洞——CVE20200601数字证书验证漏洞分析与实验...

    文/林璟锵 刘广祺 孟令佳 万会庆 王琼霄 王伟 王文杰 徐博文 中国科学院数据与通信保护研究教育中心 中国科学院信息工程研究所 信息安全国家重点实验室 1. CVE-2020-0601漏洞 2020 ...

  8. openssl中SM2、SM3、SM4使用实例

    目录 openssl的版本如下: SM3使用实例 1. SM3的扎凑实例 SM2使用实例 1. 生成SM2密钥对

  9. OpenSSL 制作证书时出现的错误的解决办法

    在制作证书的过程中遇到的问题及解决办法: 出现:I am unable to access the ./demoCA/newcerts directory        ./demoCA/newcer ...

最新文章

  1. HMM+三个基本问题
  2. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
  3. C++ 控制结构和函数(一) —— 控制结构
  4. 01-windows下 Rserve安装
  5. Google大牛涉嫌性骚扰被停职,NIPS官方致歉,传闻多时的AI圈黑幕终于被撕开
  6. 快速排序算法--两个小人扔萝卜
  7. 闭合导线计算matlab代码,【求助】闭合导线简易平差Matlab代码需要大神帮忙
  8. H5大转盘抽奖,概率可以控制,可直接使用
  9. 关于使用硬改的路由器的各种经历
  10. jupyter 使用nginx进行代理的nginx配置文件
  11. Euresys eVision 加载和保存图像
  12. gitlab+Jenkins自动化搭建部署
  13. win7用友u8安装教程_win7安装用友U8教程详解
  14. 国外问卷调查入门教程
  15. 去静态化 php,PHP页面静态化 - 菜鸟要飞啊的IT小窝 - OSCHINA - 中文开源技术交流社区...
  16. 页面加载完成事件 - onload,四种写法
  17. Dreamweaver CC 2018使用(个人使用总结)
  18. Pycharm显示多个代码窗口
  19. 淘宝客返利app迎来消费者时代!高省报告
  20. 黑马小日子--数据库基础

热门文章

  1. CentOS7环境安装Kubernetes四部曲之三:添加节点
  2. iOS开发 CoreData的简单使用
  3. 100款最佳安全工具(世界排行榜)
  4. JAVA中字符串判断
  5. JavaScript匿名函数、作用域、预解析
  6. mysql语句创建临时表并存入数据_mysql实例:在存储过程中创建临时表并储存数据...
  7. nginx 重定向地址
  8. 【物理】复合场中配速法
  9. Xshell保持会话连接
  10. tiktok协议,批量采集websocket私信详细介绍