首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openssl使用中间证书将pem转换为crt。

Openssl使用中间证书将pem转换为crt。
EN

Server Fault用户
提问于 2019-06-18 11:23:20
回答 2查看 71.2K关注 0票数 2

使用Firefox,可以轻松地将页面的使用SSL证书导出为x509,将所有中间证书导出为*.crt。

我同样需要使用openssl将*.pem文件转换为非二进制格式的*.crt。

这些是apache当前使用的证书:

代码语言:javascript
复制
SSLCertificateFile /etc/apache2/ssl/cert-start.pem
SSLCertificateKeyFile /etc/apache2/ssl/key-no-pw.pem
SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem

我可以通过以下方式轻松地将SSLCertificateFile转换为crt:

代码语言:javascript
复制
openssl x509  -in cert-start.pem -out cert-start.crt

为了构建完整链的crt,我尝试了-chain-clcerts

包含来自SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem的所有中间证书的正确方法是什么?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-06-18 13:30:42

代码语言:javascript
复制
cat cert-start.pem cert-bundle.pem > chain.pem

如果它也包含密钥(在某些情况下它是必需的,但取决于使用),则ot将是

代码语言:javascript
复制
cat cert-start.pem cert-bundle.pem key-no-pw.pem > full_chain.pem

如果您要检查输出,您将看到类似这样的情况(如果是chain.pem):

代码语言:javascript
复制
-----BEGIN CERTIFICATE-----
 ... <base64 encoded server cert> ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
 ... <base64 encoded intermediate cert> ...
-----END CERTIFICATE-----

如果是full_chain.pem,它会是这样的:

代码语言:javascript
复制
-----BEGIN CERTIFICATE-----
 ... <base64 encoded server cert> ...
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
 ... <base64 encoded intermediate cert> ...
-----END CERTIFICATE-----

-----BEGIN PRIVATE KEY-----
 ... <base64 encoded key>
-----END PRIVATE KEY-----

如果您使用openssl x509 -in chain.pem“检查”它,您将只看到第一个证书(在本例中是服务器)。其余的将作为评论处理-忽略。您必须将其分离到额外的文件,或者只需通过管道打印特定的行范围到openssl来查看内容。真正的检查可以使用cat或您喜欢的文本编辑器“直观地”完成。一旦应用程序期望使用pem / crt文件,这就是您所需要的。

如果您希望将其作为“容器”处理,则适当的形式是pkcs12。在那里,您可以将它作为一组证书处理,并以这种方式处理,然后查看/导入它。在这种情况下,命令将是

代码语言:javascript
复制
openssl pkcs12 -export -in cert-start.pem -inkey key-no-pw.pem -certfile cert-bundle.pem -out full_chain.p12 -nodes

可以使用命令检查pkcs12输出

代码语言:javascript
复制
openssl pkcs12 -in full_chain.p12 -nodes

请注意,“正确”格式(p12或pem / crt)取决于使用情况。

票数 2
EN

Server Fault用户

发布于 2019-06-18 11:50:14

你只要把它们连在一起

代码语言:javascript
复制
cat domain.tld.key domain.tld.crt root.crt > domain.tld.pem
票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/971878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档