我跟着如何:DER、CRT、CER、PEM证书以及如何转换它们,想了解如何设置 SSL,但我找不到很好的参考。
在我的服务器上,我有付费证书,而不是自签名证书,并且我想在我的 apache2 服务器中启用 SSL;在其中000-default.conf
,我需要插入.cer
文件路径:
SSLCertificateFile /ets/ssl/example.pl.crt
SSLCertificateKeyFile /etc/ssl/example.key
据我了解,.der
是一个加密.cer
文件;我应该将转换.der
为.cer
,还是我的想法是错误的?
答案1
未来访客:请注意,尽管所有 X.509 证书都是 DER,并非所有 DER 文件都是 X.509– 许多其他非证书事物也使用 DER。此线程严格涉及 X.509 证书,而不涉及任何其他数据类型。
X.509 证书总是采用 DER 格式,但通常以两种方式存储:
- 原始二进制 DER(通常的扩展名:
.der
,.cer
) - 文本,Base64 编码的 DER,有时称为“PEM”(通常的扩展名:
.crt
,.pem
)
请注意,扩展并不是一成不变的 –.cer
可能是文本,.crt
可能是二进制等等。您必须真正了解内部情况。
(不涉及加密;证书是公开信息。)
要将一个证书从二进制格式转换为文本格式,您可以使用:
openssl x509 -in mycert.der -inform DER -out mycert.pem
# both -inform and -outform default to "PEM" if not specified otherwise
或者因为它只是 Base64,
(echo "-----BEGIN CERTIFICATE-----";
base64 < mycert.der;
echo "-----END CERTIFICATE-----") > mycert.pem
然而,无论你使用哪种方式,不要忘记添加证书链(从 CA 获得的“颁发者”或“中间”证书)到同一个 PEM 文件。大多数软件都希望将所有内容放在一个文件中,尽管 Apache 在 v2.2.x 中曾经使用单独的 SSLCertificateChainFile 选项。