.pem 和 .cer 可以互换吗?

Aru*_*run 7 ssl ssl-certificate pem cer

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

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

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

谢谢你的帮助。

pep*_*epo 5

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

  • 质子交换膜

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

-----BEGIN CERTIFICATE-----
MIIDOTCCAiGgAwIBAgIBBTANBgkqhkiG9w0BAQUFADAfMQswCQYDVQQGEwJTSzEQ
MA4GA1UEAxMHaWRzcnZDQTAeFw0xNDA0MDUxMjA5MDBaFw0xNTA0MDUxMjA5MDBa
.....
VMO1CaARu0mgMZv3dw==
 -----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

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

配置 X.509 v3 证书和 X.509 v2 证书吊销列表 (CRL) 以在 Internet 中使用

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

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

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