无法从.p12生成.pem文件:openssl命令致ASN.1编码异常求助
解决从.p12生成.pem时的OpenSSL ASN.1编码错误
你遇到的这个ASN.1标签错误,本质是用错了OpenSSL命令——openssl x509是专门处理X509证书文件的,但你的输入是PKCS#12格式的.p12文件(这是一个包含证书、私钥甚至CA链的容器格式),用x509命令去解析它肯定会格式不匹配,导致解析失败。
下面是正确的处理步骤,根据你的需求选择对应的命令:
提取包含私钥和证书的完整PEM文件:
这个命令会先要求你输入.p12文件的保护密码,然后可以设置一个新密码来加密输出的PEM文件(如果不想加密私钥,后面加-nodes参数即可):openssl pkcs12 -in Certificates.p12 -out Certificates.pem只提取证书(不含私钥):
如果你只需要证书部分,用这个命令:openssl pkcs12 -in Certificates.p12 -clcerts -nokeys -out Certificates-only.pem只提取私钥(不含证书):
单独导出私钥的命令:openssl pkcs12 -in Certificates.p12 -nocerts -out PrivateKey.pem
补充说明
- 加上
-nodes参数可以跳过输出PEM文件的密码加密,比如:
但注意,无密码保护的私钥安全性较低,建议在生产环境中还是保留加密。openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes
内容的提问来源于stack exchange,提问作者Sazzad Hissain Khan
相关产品推荐
相关产品推荐

