如何将 .cer 证书转换为 .pem?

sys*_*out 140 ssl-certificate convert

我有一个.cer证书,我想将其转换为.pem格式。

如果我没记错的话,我曾经能够通过导出.cerBase64 格式的文件来转换它们,然后将文件重命名为.pem.

如何将.cer证书转换为.pem?

HUB*_*HUB 225

将 DER 文件 (.crt .cer .der) 转换为 PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem
Run Code Online (Sandbox Code Playgroud)

来源

  • 那么您的证书已经是 PEM 格式。只需将其从 `certificate.cer` 重命名为 `certificate.pem`。 (34认同)
  • 对我不起作用。CER 文件是从 Windows 证书导出工具导出的。它具有以下形式:`-----BEGIN CERTIFICATE----- MII...D2H -----END CERTIFICATE-----`。从openssl,我得到以下错误:`error:0D0680A8:asn1 encodingroutines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1338: error:0D07803A:asn1 encodingroutines:ASN1_ITEM_EX_D2I:nested asn9dec.0c3n1 error:tasn1 =X509` (19认同)

小智 18

将 .cer 文件转换为 .pem

打开终端并运行以下命令

openssl x509 -inform der -in certificate.cer -outform pem -out certificate.pem

其中,certificate.cer 是您要转换的源证书文件,certificate.pem 是转换后的证书的名称。


Mar*_*ann 14

当 openssl 在您的系统上不可用时,您也可以使用 java keytool转换证书。

但是,您必须先创建一个 Java 密钥库 (JKS)。然后可以以不同的格式导入和导出证书。

keytool -genkey -alias test -keystore <key store file>
keytool -delete -alias test -keystore <key store file>
Run Code Online (Sandbox Code Playgroud)

从 DER 转换为 PEM:

keytool -import -trustcacerts -alias test -file <der certificate file> -keystore test.keystore 
keytool -exportcert -alias test -file <pem certificate file> -rfc -keystore test.keystore
Run Code Online (Sandbox Code Playgroud)

这篇博文详细解释了如何转换证书格式

  • @endolith 在这种情况下,它们都是 .pem 文件。.cer 文件可以是 .der 或 .pem 编码,这个问题假设是 .der 编码,而你没有。 (2认同)

Dav*_*vid 7

回答

  • 如果您的证书是使用 DER 编码导出的,请使用接受的答案:

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您的证书是使用 Base64 编码导出的,则将扩展名重命名.cer.pem. 该文件已经是.pem格式。

如何判断您的.cer文件是否符合.pem格式?

请参阅此处引用的堆栈-o 答案

.pem 格式的证书很可能是 ASCII 可读的。它将有一个 line -----BEGIN CERTIFICATE-----,然后是 base64 编码的数据,然后是 line -----END CERTIFICATE-----。之前或之后可能有其他行。

例如,.pem证书(缩短):

-----BEGIN CERTIFICATE-----
MIIG6DCCBNCgAwIBAgITMgAAGCeh8HZoCVDcnwAAAAAYJzANBgkqhkiG9w0BAQsF
ADBAMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNkb3Ix
EjAQBgNVBAMTCURPUi1TVUJDQTAeFw0yMDA1MDExNTI0MTJaFw0yMjA1MDExNTI0
MTJaMBYxFDASBgNVBAMTC3dwZG9yd2VibDE2MIIBIjANBgkqhkiG9w0BAQEFAAOC
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)


gar*_*Red 5

我们不能忘记 Windows 本身就可以做到这一点:

certutil.exe -encode <der file> <pem file>
Run Code Online (Sandbox Code Playgroud)

另一个方向:

certutil.exe -decode <pem file> <der file>
Run Code Online (Sandbox Code Playgroud)

它适用于证书和 PKCS#10 请求。