如何将 .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
。由于默认的-inform
是PEM
,这只是从 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.crt
、file2.crt
到 file1.pem
和 file2.pem
。以上是关于如何将 .crt 转换为 .pem [重复]的主要内容,如果未能解决你的问题,请参考以下文章
text 如何将.pfx SSL证书转换为.crt / key(pem)格式。对NGINX很有用
ssl证书 只有crt文件 但是使用时需要key或pem文件 请问如何转换
ssl证书 只有crt文件 但是使用时需要key或pem文件 请问如何转换