如何将证书格式转换为PEM格式?

如何将证书格式转换为PEM格式?

更新时间:2023-07-04 GMT+08:00

证书格式之间是可以互相转换的。

如果您需要将其他格式的证书/私钥需要转换成PEM格式,建议通过OpenSSL工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。

证书格式转换为PEM格式

表1 证书转换命令

格式类型

转换方式(通过OpenSSL工具进行转换)

CER/CRT

“cert.crt”证书文件直接重命名为“cert.pem”

PFX

  • 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。

    openssl pkcs12 -in cert.pfx -nocerts -out key.pem

  • 提取证书命令,以“cert.pfx”转换位“cert.pem”为例。

    openssl pkcs12 -in cert.pfx -nokeys -out cert.pem

P7B

  1. 证书转换,以“cert.p7b”转换为“cert.cer”为例。

    openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

  2. “cert.cer”证书文件直接重命名为“cert.pem”

DER

  • 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。

    openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem

  • 提取证书命令,以“cert.cer”转换为“cert.pem”为例。

    openssl x509 -inform der -in cert.cer -out cert.pem

证书编码格式为PKCS8时

由于华为云WAF、ELB、CDN服务暂时不支持PKCS8编码格式,因此,当您将PKCS8编码格式的证书上传到SSL证书管理平台,再部署至WAF、ELB、CDN三个服务时,会报错。

说明:

  • 如果证书私钥文件以“—–BEGIN PRIVATE KEY—–”开头,则说明该证书是PKCS8编码格式。
  • 如果证书私钥文件以“—–BEGIN RSA PRIVATE KEY—–”开头,则说明该证书是PKCS1编码格式。

当您的公钥或者私钥的编码格式是PKCS8格式时,需要执行如下操作,才能将PKCS8编码格式的证书成功地运用到WAF、ELB、CDN服务。

  1. 证书格式是否为PEM格式。 

     

  2. 执行如下命令将PKCS8编码格式转换为PKCS1编码格式。 
    • PKCS8格式私钥转换为PKCS1格式

      openssl rsa -in pkcs8.pem -out pkcs1.pem

    • PKCS8公钥转PKCS1公钥

      openssl rsa -pubin -in public.pem -RSAPublicKey_out

     

  3. 将转换后的证书上传至SSL证书管理平台,详细的操作请参见上传证书
  4. 再将证书部署到对应的华为云服务,详细的操作请参见部署证书到云产品