如果有问题,请加QQ群 891339868 进行交流
最近在做和P12证书相关的接口,在自测时,需要不同的P12证书数据,使用openssl产生各种测试数据很方便,所以在这里记录一下,以备以后查阅。
使用openssl生成P12证书具体流程如下:
一、生成私钥
1、生成RSA私钥
(1)、生成RSA1024私钥
openssl genrsa -out ca-key.pem 1024
(2)、生成RSA2048私钥
openssl genrsa -out ca-key.pem 2048
(3)、生成RSA3072私钥
openssl genrsa -out ca-key.pem 3072
(4)、生成RSA4096私钥
openssl genrsa -out ca-key.pem 4096
2、生成SM2私钥
openssl ecparam -genkey -name SM2 -out ca-key.pem
3、生成ECC私钥
(1)、生成nist p256私钥
openssl ecparam -genkey -name P-256 -out ca-key.pem
(2)、生成nist p384私钥
openssl ecparam -genkey -name P-384 -out ca-key.pem
(3)、生成nist p521私钥
openssl ecparam -genkey -name P-521 -out ca-key.pem
分别使用上述命令,生成了不同类型的,同一名称的私钥ca-key.pem。
二、使用私钥生成证书请求数据
openssl req -new -out ca-req.csr -key ca-key.pem
通过上述命令,使用私钥数据ca-key.pem,生成了一个名称为ca-req.csr的证书请求。
三、使用证书请求生成x509证书,并进行自签名,设置证书有效日期
openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650
通过上述指令,使用ca-req.csr证书请求数据和签名私钥ca-key.pem数据,生成了一个名称为ca-cert.pem,使用日期为10年的x509证书。
四、使用x509证书和私钥生成p12证书
openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12
通过上述指令,使用x509证书数据ca-cert.pem和私钥数据ca-key.pem,生成一个名称为ca.p12的p12证书,注意,在使用该命令生成p12证书时,需要设置密钥。
好了,今天就记录到这里。