
# 如何将证书格式转换为PEM格式？
证书格式之间是可以互相转换的。
如果您需要将其他格式的证书/私钥需要转换成PEM格式，建议通过[OpenSSL](https://www.openssl.org/)工具进行转换。下面是几种比较流行的证书格式转换为PEM格式的方法。
 #### 证书格式转换为PEM格式
表1证书转换命令 
| 格式类型    | 转换方式（通过[OpenSSL](https://www.openssl.org/)工具进行转换）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|
| 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、VOD服务暂时不支持PKCS8编码格式，因此，当您将PKCS8编码格式的证书上传到SSL证书管理平台，再部署至WAF、ELB、CDN、VOD四个服务时，会报错。
![](https://support.huaweicloud.com/ccm_faq/public_sys-resources/note_3.0-zh-cn.png)
- 如果证书私钥文件以"-----BEGIN PRIVATE KEY-----"开头，则说明该证书是PKCS8编码格式。
- 如果证书私钥文件以"-----BEGIN RSA PRIVATE KEY-----"开头，则说明该证书是PKCS1编码格式。
 
当您的公钥或者私钥的编码格式是PKCS8格式时，需要执行如下操作，才能将PKCS8编码格式的证书成功地运用到WAF、ELB、CDN、VOD服务。
1. 证书格式是否为PEM格式。 
   - 是，执行[2]。
   
   - 否，参照[证书格式转换为PEM格式]将证书格式转换为PEM后，再执行[2]。
   
   
   
   
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证书管理平台，详细的操作请参见[上传证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0011.html)。
4. 再将证书部署到对应的华为云服务，详细的操作请参见[部署证书到云产品](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0056.html)。
 
