.pem和.cer可以互换使用吗?

11

我知道.pem文件是base64编码的,而.cer文件则是可以进行.pem编码的证书。

问题: 我们的应用程序一直在使用.cer文件。由于证书即将过期,我们获得了一个新的.pem格式证书。我们可以直接使用.pem文件吗?还是需要在使用之前将其转换为.cer文件?

我对证书相关的主题是个初学者。有哪些教程/网站可以帮到我呢?
谢谢你的帮助。

1个回答

5
据我所知,有两种编码方式可以用来保存证书(或私钥、CRL、PKCS#12等)。这两种编码方式是:
  • 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(或其他扩展名)都无所谓。即使证书未经过64个字符的每行包装或甚至没有头部,Windows也能够使用PEM编码中的证书。OpenSSL则不同,要求PEM编码的证书具有头部,并且每行包装为64个字符。因此,如您所见,这取决于应用程序。建议您查看.pem文件并查看使用的编码(使用您喜欢的编辑器)。然后使用与.cer文件中使用的完全相同的编码(只是为了安全起见,因为我不知道您指的是哪个应用程序)。如果您愿意,也可以将.pem文件重命名为.cer文件,但在我看来,这可能是不必要的。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接