10

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

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

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

谢谢你的帮助。

4

1 回答 1

5

据我所知,有 2 种编码类型,您可以在其中保存证书(或私钥、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) 以在 Internet 中使用

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

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

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

于 2014-04-07T21:45:28.980 回答