我正在尝试安装 SSL 证书,但出现以下错误:
AH02241: Init: Unable to read server certificate from file /path/my.crt
SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509)
AH02312: Fatal error initialising mod_ssl, exiting.
这是我遵循的过程:
我生成了我的私钥:
openssl genrsa -out my.key 2048
我创建了 CSR:
openssl req -new -key my.key -out my.csr
我向我们的 IT 部门提供了 CSR,他们返回了一个 crt - 它以
-----BEGIN CERTIFICATE-----
我的 ssl.conf 有(my.example.com 匹配 CSR 生成期间使用的通用名称):
<VirtualHost my.example.com:443>
SSLEngine On
ServerName my.example.com
SSLCertificateFile /path/my.crt
SSLCertificateKeyFile /path/my.key
</VirtualHost>
我没有 SSLCertificateChainFile 或 SSLCACertificate 文件集。
私钥以
----BEGIN RSA PRIVATE KEY-----
csr 开始于
-----BEGIN CERTIFICATE REQUEST-----
我已经验证了两者:
openssl rsa -noout -modulus -in my.key
openssl req -noout -modulus -in my.csr
产生相同的输出。我不知道如何验证 crt - 尝试 x509 和 rsa 都会产生错误。
这个过程应该有效吗?我可以验证 my.crt 是否以某种方式匹配密钥吗?
事实证明,我获得的证书是错误的。
跑步
应该有效,但由于证书已损坏,它产生了错误:
我想我应该注意到,在查看错误证书时,块中的行的长度并不完全相同。
为了:
您应该使用这些文件的完整路径,即:
更新正确的路径并重新启动 Apache 以应用更改。如果问题仍然存在,请发回更新的错误/消息。
-布伦丹
仅作记录:我有相同类型的错误报告,问题不在证书中,而在配置中。
我错误地将密钥定义为证书,将证书定义为密钥。结果是同样的错误信息。
该错误是由于我的参考配置以相反的顺序显示了这些项目。
即使是@Brendan 的示例也有此错误,因为它引用了两次证书 - 证书和密钥。
因此,请务必检查您是否在正确的参数中引用了正确的文件。