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

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

#1 楼

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

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




评论


对我不起作用。 CER文件是从Windows证书导出工具导出的。它具有以下形式:----- BEGIN CERTIFICATE ----- MII ... D2H ----- END CERTIFICATE -----。从openssl中,我收到以下错误:错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误的标签:tasn_dec.c:1338:错误:0D07803A:asn1编码例程:ASN1_ITEM_EX_D2I:嵌套的asn1错误:tasn_dec.c:390:Type = X509

–马丁·佩卡(Martin Pecka)
16-11-14在0:27

则您的证书已经是PEM格式。只需将其从certificate.cer重命名为certificate.pem。

–慢手
17年5月16日在21:11

#2 楼

在.pem中转换.cer文件

打开终端并运行以下命令

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

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

#3 楼

如果您的系统上没有openssl,则可以使用java keytool转换证书。

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

keytool -genkey -alias test -keystore <key store file>
keytool -delete -alias test -keystore <key store file>


从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


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

评论


我这样做了,.pem文件几乎与.cer文件相同,只是包装不同。

– Endolith
16年5月6日在15:00

在这种情况下,@ endolith都是.pem文件。 .cer文件可以是.der或.pem编码,此问题假定您没有.der编码。

–eis
16/09/20在15:00

#4 楼

答案


如果证书是使用DER编码导出的,请使用公认的答案:
openssl x509 -inform der -in certificate.cer -out certificate.pem



如果证书已导出使用Base64编码,然后将扩展名.cer重命名为.pem。该文件已经是.pem格式。


如何判断您的.cer文件是.pem格式?
.pem格式的证书很可能是ASCII可读的。
将有一行-----BEGIN CERTIFICATE-----,然后是base64编码的
数据,然后是一行-----END CERTIFICATE-----。之前或之后可能还有其他
行。

例如,.pem证书(简称):
-----BEGIN CERTIFICATE-----
MIIG6DCCBNCgAwIBAgITMgAAGCeh8HZoCVDcnwAAAAAYJzANBgkqhkiG9w0BAQsF
ADBAMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNkb3Ix
EjAQBgNVBAMTCURPUi1TVUJDQTAeFw0yMDA1MDExNTI0MTJaFw0yMjA1MDExNTI0
MTJaMBYxFDASBgNVBAMTC3dwZG9yd2VibDE2MIIBIjANBgkqhkiG9w0BAQEFAAOC
...
-----END CERTIFICATE-----