Bootstrap

服务器使用GMSSL生成P10文件

首先看P10证书采用的是哪种秘钥加密方式,这里通过CFCA官网查询证书可以看到,以下是查询链接

 Certificate Hall(测试环境)

本次查到到加密方式为 SM2-256

生成P10 逻辑大致为 通过GMSSL 生成SM2秘钥,再通过SM2秘钥生成P10文件。这里的SM2秘钥根据上述官网查询到的证书的加密方式而定。

安装GMSSL资料

快速上手

在Linux上安装完后(这里不限于Linux)

通过命令生成密钥

gmssl sm2keygen -pass $your_password -out $sm2_name.key

通过生成的SM2秘钥生成P10文件

gmssl reqgen -C CN -L 浙江省 -ST 杭州市 -O XXXX有限公司 -OU 研发部 -CN XXXX -key $sm2_name.key -pass $your_password -out p10.key

查看P10内容

[root@VM-4-12-centos ] cat req.key 
-----BEGIN CERTIFICATE REQUEST-----
xxxxx
-----END CERTIFICATE REQUEST-----

附录:命令帮助

usage: gmssl sm2keygen -pass str [-out pem] [-pubout pem]

Options

    -pass pass                  Password to encrypt the private key
    -out pem                    Output password-encrypted PKCS #8 private key in PEM format
    -pubout pem                 Output public key in PEM format

Examples

    $ gmssl sm2keygen -pass P@ssw0rd -out sm2.pem
    $ gmssl sm2keygen -pass P@ssw0rd -out sm2.pem -pubout sm2pub.pem
usage: gmssl reqgen [-C str] [-ST str] [-L str] [-O str] [-OU str] -CN str -key pem -pass pass [-sm2_id str | -sm2_id_hex hex] [-out pem]

Options

    -key file                    Private key file in PEM format
    -pass pass                   Password for decrypting private key file
    -sm2_id str                  Signer's ID in SM2 signature algorithm
    -sm2_id_hex hex              Signer's ID in hex format
                                 When `-sm2_id` or `-sm2_id_hex` is specified,
                                   must use the same ID in other commands explicitly.
                                 If neither `-sm2_id` nor `-sm2_id_hex` is specified,
                                   the default string '1234567812345678' is used
    -out file                    Output Certificate Request (CSR) file in PEM format

  Subject options

    -C  str                      Country
    -ST str                      State or province name
    -L  str                      Locality
    -O  str                      Organization
    -OU str                      Organizational unit
    -CN str                      Common name

Examples

    gmssl sm2keygen -pass P@ssw0rd -out key.pem
    gmssl reqgen -CN www.gmssl.org -key key.pem -pass P@ssw0rd -out req.pem

;