• 本地使用openssl生成一个sm2的私钥,并生成req请求(p10数据),将其作为申请书内容,进行证书的下载


    完整流程

     

     生成密钥对

    • 1,本地首先使用openssl生成一个256位的SM2私钥
      • ​gmssl ecparam -genkey -name sm2p256v1 -text -out xxxx.key
        • 查看私钥内容
        • gmssl sm2 -noout -text -in xxxx.key 
        • 或者
        • gmssl pkey -in xxxx.key -text
    1. gmssl sm2 -noout -text -in xxxx.key
    2. Using configuration from /usr/local/gmssl/openssl.cnf
    3. read SM2 key
    4. Private-Key: (256 bit)
    5. priv:
    6. ae:81:28:c6:00:ba:0f:bc:b8:2d:59:48:0f:a6:b8:
    7. a5:a1:39:b0:b4:09:87:13:04:1f:5c:6d:99:f3:6a:
    8. 53:14
    9. pub:
    10. 04:e5:e3:11:2f:77:c4:ab:8b:98:e8:4c:ae:c3:0a:
    11. f8:c3:b3:6e:90:b2:59:62:79:af:2e:17:ed:46:e8:
    12. af:6a:70:17:d1:9a:b4:b8:c0:19:07:a9:ef:bc:a2:
    13. ea:c0:38:d2:e7:17:d1:25:1f:28:e0:f0:d9:8b:0c:
    14. bb:d3:60:bd:3a
    15. ASN1 OID: sm2p256v1
    16. NIST CURVE: SM2

    生成P10 

    • 2,基于密钥产生证书申请(P10 = 公钥 + 字段)
      • gmssl req -new -sm3 -key xxxx.key -out xxxx.req -subj "/C=Cn/ST=Hubei/L=Wuhan/O=kk/OU=kkk/CN=client/emailAddress=khaosi@sina.com"
      • 查看申请内容
        • gmssl req -nout -in xxxx.req -text
    1. Certificate Request:
    2. Data:
    3. Version: 1 (0x0)
    4. Subject: C = Cn, O = SDT, CN = test
    5. Subject Public Key Info:
    6. Public Key Algorithm: id-ecPublicKey
    7. Public-Key: (256 bit)
    8. pub:
    9. 04:e5:e3:11:2f:77:c4:ab:8b:98:e8:4c:ae:c3:0a:
    10. f8:c3:b3:6e:90:b2:59:62:79:af:2e:17:ed:46:e8:
    11. af:6a:70:17:d1:9a:b4:b8:c0:19:07:a9:ef:bc:a2:
    12. ea:c0:38:d2:e7:17:d1:25:1f:28:e0:f0:d9:8b:0c:
    13. bb:d3:60:bd:3a
    14. ASN1 OID: sm2p256v1
    15. NIST CURVE: SM2
    16. Attributes:
    17. a0:00
    18. Signature Algorithm: sm2sign-with-sm3
    19. 30:46:02:21:00:ef:aa:5f:08:bb:16:1c:18:7e:c9:dd:44:df:
    20. 61:c7:5b:b0:b7:f2:e2:c7:9a:57:e0:c2:67:b9:d7:1e:39:98:
    21. 04:02:21:00:8d:9d:d5:45:33:0e:0d:ff:39:b2:f1:d5:93:f9:
    22. 3b:5b:17:bd:2a:b6:e1:2d:83:2c:67:56:87:83:60:b4:71:51
    23. -----BEGIN CERTIFICATE REQUEST-----
    24. MIHmMIGMAgEAMCoxCzAJBgNVBAYTAkNuMQwwCgYDVQQKDANTRFQxDTALBgNVBAMM
    25. BHRlc3QwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAATl4xEvd8Sri5joTK7DCvjD
    26. s26Qslliea8uF+1G6K9qcBfRmrS4wBkHqe+8ourAONLnF9ElHyjg8NmLDLvTYL06
    27. oAAwCgYIKoEcz1UBg3UDSQAwRgIhAO+qXwi7FhwYfsndRN9hx1uwt/Lix5pX4MJn
    28. udceOZgEAiEAjZ3VRTMODf85svHVk/k7Wxe9KrbhLYMsZ1aHg2C0cVE=
    29. -----END CERTIFICATE REQUEST-----

    生成双证书 

    • 3 从吉大正元的PKI进行证书下载,证书的相关字段和请求保持一致,进行证书下载阶段时,上传先前产生的P10数据

    • 选择 自定义P10申请
    • 申请书内容 填写  xxxx.req,但是需要去掉 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST-----
    • 证书类型,这里选择zip,但是zip解压得到的以下三个文件,分别是P7b格式的签名和加密证书,private.data 是 加密之后的与加密证书相对应的私钥
      • 注意事项:
        • 本地产生私钥的时候,同时产生与之对应的公钥
        • 公钥+数据字段 --> 获取申请请求
        • 私钥和签名证书相对应
        • 加密证书是包含公钥的,其对应的私钥被加密保护,也就是private.data

    •  将cer格式的证书修改后缀名为pem,将其导入到Ubuntu,使用openssl进行读取
      • gmssl x509 -noout -text -in sign.pem
    1. gmssl x509 -noout -text -in sign.pem
    2. Certificate:
    3. Data:
    4. Version: 3 (0x2)
    5. Serial Number: 3965133194720063854 (0x3706fba1e666316e)
    6. Signature Algorithm: sm2sign-with-sm3
    7. Issuer: C = CN, O = SDT, CN = SDTCA SM2
    8. Validity
    9. Not Before: Sep 20 06:50:00 2022 GMT
    10. Not After : Sep 17 06:50:00 2032 GMT
    11. Subject: C = CN, O = SDT, CN = server
    12. Subject Public Key Info:
    13. Public Key Algorithm: id-ecPublicKey
    14. Public-Key: (256 bit)
    15. pub:
    16. 04:e5:e3:11:2f:77:c4:ab:8b:98:e8:4c:ae:c3:0a:
    17. f8:c3:b3:6e:90:b2:59:62:79:af:2e:17:ed:46:e8:
    18. af:6a:70:17:d1:9a:b4:b8:c0:19:07:a9:ef:bc:a2:
    19. ea:c0:38:d2:e7:17:d1:25:1f:28:e0:f0:d9:8b:0c:
    20. bb:d3:60:bd:3a
    21. ASN1 OID: sm2p256v1
    22. NIST CURVE: SM2
    23. X509v3 extensions:
    24. X509v3 Key Usage:
    25. Digital Signature, Non Repudiation
    26. X509v3 CRL Distribution Points:
    27. Full Name:
    28. URI:http://127.0.0.1
    29. X509v3 Subject Key Identifier:
    30. 21:81:3D:4C:55:8C:60:81:6F:E9:80:3B:FB:30:75:00:25:16:55:38
    31. X509v3 Authority Key Identifier:
    32. keyid:08:17:D5:9F:AF:34:E2:91:65:8F:2B:CE:CD:F2:B5:AA:E7:B1:E2:BC
    33. Signature Algorithm: sm2sign-with-sm3
    34. 30:46:02:21:00:d8:2e:f3:71:88:f6:ba:d5:4f:9c:59:36:70:
    35. a4:ca:b3:4c:73:8b:ac:02:25:a3:fc:a0:13:11:6e:1c:b3:6a:
    36. 62:02:21:00:d0:86:db:bc:f9:d9:30:80:a1:3b:90:bb:c6:44:
    37. de:34:23:01:f6:a7:b1:f8:1a:68:a6:72:55:84:6d:b7:06:6e

    提取crypt.key 

    • 4 提取与加密证书相对应的key,即encrypt.key

     

     

  • 相关阅读:
    HTML+CSS简单漫画网页设计成品--(红猪(9页)带注释)
    Java并发编程——Java筑基
    Gartner权威报告解读:探究应用可观测性的发展
    Mysql的索引
    Lesson 2 Thirteen equals one 十三等于一
    蓝桥杯 枚举算法 (c++)
    11.26
    关于ONLYOFFICE8.1版本桌面编辑器测评——AI时代的领跑者
    Milvus 美基本概念
    Redis - 高级
  • 原文地址:https://blog.csdn.net/CHYabc123456hh/article/details/126957119