【问题标题】:How to convert .crt to .pem [duplicate]如何将 .crt 转换为 .pem [重复]
【发布时间】:2011-06-09 04:01:13
【问题描述】:

如何将 .crt 转换为 .pem?

【问题讨论】:

    标签: x509 pem asn.1 crt der


    【解决方案1】:

    您可以使用the OpenSSL library 进行此转换。 Windows 二进制文件可以在 here 找到。

    一旦你安装了库,你需要发出的命令是:

    openssl x509 -in mycert.crt -out mycert.pem -outform PEM
    

    【讨论】:

    • @Dave,这通常相当于cp mycert.crt mycert.pem。由于默认的-informPEM,这只是从 PEM 到 PEM 的 in->out 转换。主要的不同可能在于实际证书周围的潜在文本标题。大多数时候.crt 无论如何都是 PEM 格式,但有时它们是 DER 格式(约定并不总是很好)。
    • 我必须使用“openssl x509 -in myCert.crt -inform der -outform pem -out myCert.pem”行来正确解释它。
    • 我不知道为什么如此误导的答案有这么多赞成票。 “crt”只是文件名的一部分,与格式无关,可能是DER或PEM。只有您知道格式,只有使用正确的选项,您可以使用上述命令。 span>
    • 上述命令刚刚生成了一个与.crt文件内容相同的.pem。所以,我认为 Dave 是对的.. 就我而言,可能只是复制粘贴了带有 .pem 扩展名的文件!
    • .crt 文件可能已经是 PEM 格式(在这种情况下,上面的答案将起作用,或者做完全相同的事情的简单副本)。或者,它们可能是 DER 格式,在这种情况下,上述答案将不起作用,您需要添加 -inform DER,正如其他 cmets 和答案所指出的那样。
    【解决方案2】:

    我发现上面给出的 OpenSSL 答案对我不起作用,但下面的答案确实适用于来自 windows 的 CRT 文件。

    openssl x509 -inform DER -in yourdownloaded.crt -out outcert.pem -text
    

    【讨论】:

    • 工作完美,谢谢。似乎有些 crt 文件是二进制 (DER) 编码的,而另一些是 base64 编码的,如 pem。
    • 像魅力一样工作,谢谢!上面的解决方案不起作用,请参阅我对详细信息的评论。使用 Mac 操作系统
    • 我遇到了需要转换多个文件的情况。在 Bash 中使用带有参数扩展的循环从每个原始文件名创建 .pem 扩展名。 for f in *.crt ; do openssl x509 -in "$f" -outform PEM -out "${f%.*}.pem" ; done 它将转换,例如,file1.crtfile2.crtfile1.pemfile2.pem
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2013-06-22
    • 2020-10-30
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多