格式转换

如果用户从CA收到的证书不是PEM格式的,需要转换成PEM格式,几种常见的证书格式转换为PEM格式的方法如下表所示:

证书格式 转换方法
DER -> PEM 证书:openssl x509 -inform der -in my-certificate.cer -out my-certificate.pem
私钥:openssl rsa -inform DER -outform PEM -in my-private-key.der -out my-private-key.pem
P7B -> PEM 证书:openssl pkcs7 -print_certs -in my-certificate.p7b -out my-certificate.pem。从my-certificate.pem中获取“-----BEGIN CERTIFICATE-----”开头,“-----END CERTIFICATE-----”结尾的内容作为证书。
私钥:无私钥
PFX -> PEM 证书:openssl pkcs12 -in certname.pfx -nokeys -out my-certificate.pem
私钥:openssl pkcs12 -in certname.pfx -nocerts -out my-private-key.pem -nodes

注意

  • 如果您的私钥是加密的,比如私钥的开头和结尾是-----BEGIN PRIVATE KEY-----, -----END PRIVATE KEY-----或-----BEGIN ENCRYPTED PRIVATE KEY-----, -----END ENCRYPTED PRIVATE KEY-----,或者私钥中包含Proc-Type: 4,ENCRYPTED,需要先运行以下命令进行转换:

    openssl rsa -in old_server_key.pem -out new_server_key.pem

  • 私钥需要和服务器证书里的公钥匹配。可以通过以下两条命令生成私钥和证书的MD5值,如果二者一致,则可认为私钥与证书里的公钥匹配。

    openssl x509 -noout -modulus -in my-certificate.pem | openssl md5
    openssl rsa -noout -modulus -in my-private-key.pem | openssl md5