linux - 将 cer 转换为 pem 时出现 OpenSSL 编码错误

标签 linux openssl certificate ssl-certificate

我正在尝试通过 openssl 将 .cer 文件转换为 .pem,命令是:

openssl x509 -inform der -in certnew.cer -out ymcert.pem

这就是我遇到的错误:

unable to load certificate
140735105180124:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735105180124:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509

我做错了什么?

最佳答案

explained by ssl.com , .cer 文件可以是 der 或 pem 编码。如果它是 der 编码,你需要像你尝试的那样进行转换,但如果它已经是 pem 编码,则不需要转换,如果你尝试,你会得到你遇到的错误 - 你可以重命名文件。

如果您不确定,最好知道 .der 是一种二进制格式,而 .pem 是 ascii 格式。如果您回显证书的内容,.pem 文件将如下所示:

-----BEGIN CERTIFICATE-----
MIIEuTCCA6G[snip lots of chars]
XmCpajQ==
-----END CERTIFICATE-----

.der 文件看起来像这样:

0▒▒0▒▒▒@*▒H▒▒▒▒▒0
0▒▒1
    0   UUS10U
VeriSign, Inc.10U
                 VeriSign Trust Network1:08U

关于linux - 将 cer 转换为 pem 时出现 OpenSSL 编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191468/

相关文章:

linux - 通过从 shell 传递数据库凭据使用 shell 脚本连接数据库

linux - 找出 Linux 中的剩余时间

java - 如何在linux(centos 6.4)中安装tomcat?

c - 如何使用 openssl C API 验证 pkcs#12 证书 (.PXF) 的密码?

java - 将公私 key 对导入 keystore

linux - 如何在 bash 运行时使用 $ 创建变量值

openssl CRC32 计算

php - openJDK 和 PHP SSL 连接失败

c# - 使用 itext7 从 pdf 中的数字签名中提取电子邮件地址

ios - 我应该共享我的 trigger.io 配置文件和证书吗?