weixin_43496057 2024-07-08 14:45 采纳率: 25%
浏览 22
已结题

GMssl3.12使用方法提问

您好!有关GmSSL制作国密算法自签证书和 HTTPS 配置,这篇文章中,gmssl3.1.2dev版本后,很多签名命令都变了,可不可以针对目前最新的版本写一篇指导文档,感谢指导不胜感激。


```bash
Commands:
  help              Print this help message
  version           Print version
  rand              Generate random bytes
  sm2keygen         Generate SM2 keypair
  sm2sign           Generate SM2 signature
  sm2verify         Verify SM2 signature
  sm2encrypt        Encrypt with SM2 public key
  sm2decrypt        Decrypt with SM2 private key
  sm3               Generate SM3 hash
  sm3hmac           Generate SM3 HMAC tag
  sm3_pbkdf2        Hash password into key using PBKDF2 algoritm
  sm3xmss_keygen    Generate SM3-XMSS keypair
  sm4_ecb           Encrypt or decrypt with SM4 ECB
  sm4_cbc           Encrypt or decrypt with SM4 CBC
  sm4_ctr           Encrypt or decrypt with SM4 CTR
  sm4_cfb           Encrypt or decrypt with SM4 CFB
  sm4_ofb           Encrypt or decrypt with SM4 OFB
  sm4_ccm           Encrypt or decrypt with SM4 CCM
  sm4_gcm           Encrypt or decrypt with SM4 GCM
  sm4_xts           Encrypt or decrypt with SM4 XTS
  sm4_cbc_sm3_hmac  Encrypt or decrypt with SM4 CBC with SM3-HMAC
  sm4_ctr_sm3_hmac  Encrypt or decrypt with SM4 CTR with SM3-HMAC
  sm4_cbc_mac       Generate SM4 CBC-MAC
  ghash             Generate GHASH
  zuc               Encrypt or decrypt with ZUC
  sm9setup          Generate SM9 master secret
  sm9keygen         Generate SM9 private key
  sm9sign           Generate SM9 signature
  sm9verify         Verify SM9 signature
  sm9encrypt        SM9 public key encryption
  sm9decrypt        SM9 decryption
  reqgen            Generate certificate signing request (CSR)
  reqsign           Generate certificate from CSR
  reqparse          Parse and print a CSR
  crlget            Download the CRL of given certificate
  crlgen            Sign a CRL with CA certificate and private key
  crlverify         Verify a CRL with issuer's certificate
  crlparse          Parse and print CRL
  certgen           Generate a self-signed certificate
  certparse         Parse and print certificates
  certverify        Verify certificate chain
  certrevoke        Revoke certificate and output RevokedCertificate record
  cmsparse          Parse CMS (cryptographic message syntax) file
  cmsencrypt        Generate CMS EnvelopedData
  cmsdecrypt        Decrypt CMS EnvelopedData
  cmssign           Generate CMS SignedData
  cmsverify         Verify CMS SignedData
  sdfinfo           Print SDF device info
  sdfdigest         Generate SM3 hash with SDF device
  sdfexport         Export SM2 signing public key from SDF device
  sdfsign           Generate SM2 signature with SDF internal private key
  sdfencrypt        SM2/SM4-CBC hybrid encryption with SDF device
  sdfdecrypt        SM2/SM4-CBC hybrid decryption with SDF device
  sdftest           Test vendor's SDF library and device
  tlcp_client       TLCP client
  tlcp_server       TLCP server
  tls12_client      TLS 1.2 client
  tls12_server      TLS 1.2 server
  tls13_client      TLS 1.3 client
  tls13_server      TLS 1.3 server


```

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-08 14:45
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您好!针对您提出的GmSSL 3.12版本中关于国密算法自签证书和HTTPS配置的使用方法,以下是一些基本指导和步骤:

    1. 生成SM2密钥对: 使用sm2keygen命令可以生成SM2密钥对。例如:

      gmssl sm2keygen -pass 1234 -out sm2.pem -pubout sm2pub.pem
      

      引用:[^1^]

    2. 进行SM2签名和验证

      • 签名:
        echo hello | gmssl sm2sign -key sm2.pem -pass 1234 -out sm2.sig
        
      • 验证:
        echo hello | gmssl sm2verify -pubkey sm2pub.pem -sig sm2.sig -id 1234567812345678
        

      引用:[^4^]

    3. 进行SM4加密和解密

      • 加密:
        echo hello | gmssl sm4_ecb -encrypt -key 1122334455667788 -out sm4.enc
        
      • 解密:
        gmssl sm4_ecb -decrypt -key 1122334455667788 -in sm4.enc
        

      注意:您需要替换key参数为您的SM4密钥。

    4. 生成自签名证书: 使用certgen命令生成自签名证书。例如:

      gmssl certgen -C CN -ST Beijing -L Haidian -O PKU -OU CS -CN localhost -days 365 -key signkey.pem -pass 1234 -out signcert.pem
      

      引用:[^7^]

    5. 配置HTTPS: 对于Web服务器,如Tomcat、Nginx或Apache,您需要配置SSL证书和密钥。以下是一个Nginx配置HTTPS的示例:

      server {
          listen 443 ssl;
          ssl_certificate /path/to/your/server.cer;
          ssl_certificate_key /path/to/your/server.key;
          # 其他配置...
      }
      

      引用:[^6^]

    6. 证书链的验证: 使用certverify命令来验证证书链。例如:

      gmssl certverify -in server.pem -cacert rootcacert.pem
      

      引用:[^1^]

    7. CRL的下载、生成和验证

      • 下载CRL:
        gmssl crlget -out crl.pem -issuercert cacert.pem
        
      • 生成CRL:
        gmssl crlgen -cacert cacert.pem -cakey cakey.pem -pass 1234 -out crl.pem
        
      • 验证CRL:
        gmssl crlverify -crl crl.pem -cert servercert.pem -cacert cacert.pem
        

      引用:[^1^]

    8. CMS的加密、解密、签名和验证

      • 加密:
        gmssl cmsencrypt -in plain.txt -rcptcert cert.pem -out enveloped_data.pem
        
      • 解密:
        gmssl cmsdecrypt -key key.pem -pass 1234 -cert cert.pem -in enveloped_data.pem
        
      • 签名:
        gmssl cmssign -key key.pem -pass 1234 -cert cert.pem -in plain.txt -out signed_data.pem
        
      • 验证:
        gmssl cmsverify -in signed_data.pem -out signed_data.txt
        

      引用:[^1^]

    请注意,以上命令和参数可能需要根据您的具体情况进行调整。如果您需要更详细的步骤或者有特定的配置需求,请告知我,我会提供进一步的帮助。同时,您也可以参考GmSSL的官方文档和社区提供的教程来获取更深入的信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 已采纳回答 7月8日
  • 创建了问题 7月8日