我想将 PEM(+key) 证书转换为文件*.p12
。我知道当我没有中间证书时我会这样做:
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
我有中级证书该怎么办?
答案1
您需要将所有 PEM 文件连接为一个,然后将其转换为 PKCS#12:
$ cat certificate.crt intermediate.crt > bundle.crt
$ openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in bundle.crt
答案2
为了方便起见:您可以将证书颁发机构的捆绑包合并为一个文件(例如 ca-bundle.crt)并使用 -certfile 参数传递它:
openssl pkcs12 -inkey mycert.key -in mycert.crt -export -out mycert.pfx -certfile ca-bundle.crt
我总是先从中间证书开始构建 CA 包,然后附加/连接链中的下一个中间证书(如果有多个)。根据您要安装到的服务器,您可能也希望或不希望包含 CA 根证书。
此方法仍然适用于 OpenSSL 版本 3。