.pem和.cer是否可以互换?

时间:2014-04-07 20:44:18

标签: ssl ssl-certificate pem cer

我知道.pem是64位编码的,.cer是可以.pem编码的证书。

问题: 我一直在我们的应用程序中使用.cer。由于证书到期,我们获得了.pem格式的新证书。我们可以开始使用.pem,还是应该在使用之前将其转换为.cer?

我是证书相关主题的新手。任何教程/网站都会有所帮助。

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,有两种类型的编码,您可以在其中保存证书(或私钥,CRL,PKCS#12等)。 这2个编码是

  • PEM
  • DER

PEM是一种base64编码,通常与某些标头一起使用,每行包含64个字符。 PEM编码中的证书示例是

-----BEGIN CERTIFICATE-----
MIIDOTCCAiGgAwIBAgIBBTANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJTSzEQ
MA4GA1UEAxMHaWRzcnZDQTAeFw0xNDA0MDUxMjA5MDBaFw0xNTA0MDUxMjA5MDBa
.....
VMO1CaARu0mgMZv3dw==
 -----END CERTIFICATE-----

DER是一种二进制编码,可以使用base64编码函数和包装和使用标头转换为PEM编码。它表示由RFC 5280定义的ASN.1结构

  

配置X.509 v3证书和X.509 v2证书吊销   用于互联网的列表(CRL)

。 Windows可以使用这两种编码,如果文件具有.cer或.crt(或可能是其他)扩展名,则无关紧要。它设法在PEM编码中使用证书,即使它没有包含每行64个字符串,或者即使它没有标题。 Openssl是不同的,并且要求PEM编码中的证书具有标题,并且每个包装都是64个。所以你可以看到它取决于应用程序。

我建议您查看.pem文件并查看使用的编码(使用您喜欢的编辑器)。然后使用与.cer文件中使用的完全相同(只是为了安全,因为我不知道你的意思是什么应用程序)。如果你愿意,你也可以将.pem文件重命名为.cer文件,但恕我直言,我认为没有必要。

哦,还有第三种编码(我很少看到) - 十六进制编码。实际上它是以十六进制字符表示的DER。您可以使用certutil(在Windows上)从HEX转换为DER。