国密SM2的证书制作及验证

  1. 公钥秘钥使用sm2算法

  2. 根证书制作步骤:

    1. 生成根证书秘钥
      openssl ecparam -out ca.key -name SM2 -genkey
    2. 生成根证书请求文件
      openssl req -key ca.key -new -out ca.req
    3. 生成根证书
      openssl x509 -req -in ca.req -signkey ca.key -out ca.pem
  3. sm2证书制作步骤

    1. 生成sm2秘钥对
      openssl ecparam -out site.key -name SM2 -genkey
    2. 生成证书请求文件
      openssl req -key site.key -new -out site.req
    3. 生成证书
      openssl x509 -req -in site.req -CA ca.pem -CAkey ca.key -out site.pem -CAcreateserial
    4. 转为der格式
      openssl x509 -outform der -in site.pem -out site.der
  4. 验证

    /work2/learn/openssl/sm2# .../openssl_demo site.der

    root@ubuntu:/work2/learn/openssl/sm2# .../openssl_demo site.der

    File name site.der

    1. Certificate Version=0
    2. Certificate Serial len=20 Serial:240DDC77DA57AD64CFFC2CD8B1F4F6070FAAF3E8
    3. signature=ecdsa-with-SHA256ecdsa-with-SHA256
    4. issuer_name=/C=cn/ST=fj/L=fz/O=rj/OU=fz/CN=zhengjnq/emailAddress=359791866@qq.com
    5. Certificate time
      From: Wed Feb 19 17:45:24 2020
      To : Fri Mar 20 17:45:24 2020
    6. subject num=7/C=cn/ST=fj/L=fz/O=fx/OU=fx/CN=zengjuq/emailAddress=359791866@qq.com
    7. Subject PublicKey
      公钥算法:id-ecPublicKey
      证书类型:408
      加密级别:256 bit
      公钥长度=65
      04 30 D7 F8 BE CE 8E BF 07 69 59 68 2B 07 87 96 FC D0 78 8C 41 EE B9 71 C0 60 0C 4E EC 84 2B B9
      EF F4 B0 4B 99 AF CF 42 17 92 64 31 FE CC 0E 0D 03 02 D1 3D 0B 0B 04 6A 4D C1 31 84 BD 9F F1 BB
      79
      扩展学习1:如何精细的获取 证书接受者的数据?
      subject_name_num=7

      00\]\[countryName\]=\[cn

      01\]\[stateOrProvinceName\]=\[fj

      02\]\[localityName\]=\[fz

      03\]\[organizationName\]=\[fx

      04\]\[organizationalUnitName\]=\[fx

      05\]\[commonName\]=\[zengjuq

      06\]\[emailAddress\]=\[359791866@qq.com

      扩展学习2:如何精细的获取 证书签发着的数据?
      subject_name_num=7

      00\]\[countryName\]=\[cn

      01\]\[stateOrProvinceName\]=\[fj

      02\]\[localityName\]=\[fz

      03\]\[organizationName\]=\[rj

      04\]\[organizationalUnitName\]=\[fz

      05\]\[commonName\]=\[zhengjnq

      06\]\[emailAddress\]=\[359791866@qq.com

      X509 扩展处理
      X509 证书扩展项个数 0

  5. 获取代码地址!!

    https://gitee.com/zhengjunqiang/learn.git

  6. openssl版本

    root@ubuntu:/work2/learn# openssl version

    OpenSSL 1.1.1 11 Sep 2018

  7. 系统

    root@ubuntu:/work2/learn# cat /etc/issue

    Ubuntu 18.04.4 LTS \n \l

相关推荐
Lsetea10 小时前
Nginx报No required SSL certificate was sent:mTLS客户端证书排查
运维·nginx·https·ssl·openssl
K成长日志17 小时前
DALI协议-Part209-颜色控制
物联网·网络协议·iot·智能照明·智能建筑·dali
ZeroNews内网穿透18 小时前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
IPdodo_1 天前
跨境 API 调用不稳定怎么办:出口、超时重试与链路监控的实践
网络·python·网络协议
szephyr1 天前
HTTPS 证书申请与自动续期:acme.sh + Let‘s Encrypt 完整记录
nginx·https·acme.sh·证书续期
那年窗外下的雪.2 天前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump
j7~2 天前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
Lsetea2 天前
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查
nginx·https·safari·ssl证书·openssl
小则又沐风a2 天前
深入理解TCP协议----滑动窗口,流量控制
linux·网络协议·tcp
captain3762 天前
网络原理(9)-数据链路层
java·网络协议·java-ee