如何将 .crt 转换为 .pem [重复]

Posted

技术标签:

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

如何将 .crt 转换为 .pem?

【问题讨论】:

【参考方案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

以上是关于如何将 .crt 转换为 .pem [重复]的主要内容,如果未能解决你的问题,请参考以下文章

DER,CRT,CER,PEM证书以及如何转换它们

text 如何将.pfx SSL证书转换为.crt / key(pem)格式。对NGINX很有用

ssl证书 只有crt文件 但是使用时需要key或pem文件 请问如何转换

ssl证书 只有crt文件 但是使用时需要key或pem文件 请问如何转换

将.crt、.cer、.pfx、.p7b、.der的ssl证书转换成.pem格式

从 PPK 文件创建 PEM [重复]