使用Firefox,可以轻松地将页面的使用SSL证书导出为x509,将所有中间证书导出为*.crt。
我同样需要使用openssl将*.pem文件转换为非二进制格式的*.crt。
这些是apache当前使用的证书:
SSLCertificateFile /etc/apache2/ssl/cert-start.pem
SSLCertificateKeyFile /etc/apache2/ssl/key-no-pw.pem
SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem我可以通过以下方式轻松地将SSLCertificateFile转换为crt:
openssl x509 -in cert-start.pem -out cert-start.crt为了构建完整链的crt,我尝试了-chain,-clcerts。
包含来自SSLCACertificateFile /etc/apache2/ssl/cert-bundle.pem的所有中间证书的正确方法是什么?
发布于 2019-06-18 13:30:42
cat cert-start.pem cert-bundle.pem > chain.pem如果它也包含密钥(在某些情况下它是必需的,但取决于使用),则ot将是
cat cert-start.pem cert-bundle.pem key-no-pw.pem > full_chain.pem如果您要检查输出,您将看到类似这样的情况(如果是chain.pem):
-----BEGIN CERTIFICATE-----
... <base64 encoded server cert> ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... <base64 encoded intermediate cert> ...
-----END CERTIFICATE-----如果是full_chain.pem,它会是这样的:
-----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。在那里,您可以将它作为一组证书处理,并以这种方式处理,然后查看/导入它。在这种情况下,命令将是
openssl pkcs12 -export -in cert-start.pem -inkey key-no-pw.pem -certfile cert-bundle.pem -out full_chain.p12 -nodes可以使用命令检查pkcs12输出
openssl pkcs12 -in full_chain.p12 -nodes请注意,“正确”格式(p12或pem / crt)取决于使用情况。
发布于 2019-06-18 11:50:14
你只要把它们连在一起
cat domain.tld.key domain.tld.crt root.crt > domain.tld.pemhttps://serverfault.com/questions/971878
复制相似问题