我通过电子邮件收到了我的证书,然后创建了必要的文件并将其复制过来。我去重新启动服务器并收到以下错误。
[Wed Feb 08 13:02:06 2012] [错误]初始化:无法从文件/home/sslcertificates/mydomain.crt读取服务器证书 [Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218529960错误:0D0680A8:asn1编码例程:ASN1_CHECK_TLEN:错误的标签 [Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218595386错误:0D07803A:asn1编码例程:ASN1_ITEM_EX_D2I:嵌套asn1错误
有没有人有任何想法?
答案 0 :(得分:20)
导致此错误消息的另一个可能的失败原因是: 而不是我链接到认证请求文件的证书文件。 当您阅读文件的第一行时,它是可识别的: 任
-----BEGIN CERTIFICATE REQUEST-----
或
-----BEGIN CERTIFICATE-----
: - )
答案 1 :(得分:13)
情况:Apache 2.4使用StartSSL证书生成ASN编码错误
问题:
AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key
默认情况下,某些SSL颁发者会对ssl密钥文件进行加密,因此请确保在服务器上对其进行解密并将其从虚拟主机中指向。
只需回显密钥文件即可确保其未加密。
解密mod_ssl的密钥文件
openssl rsa -in ssl.key -out ssl.key
对于Apache conf(httpd.conf)中的SSL配置,添加以下配置并重新启动Apache。
# SSL
<VirtualHost *:443>
ServerName gajen.com
SSLCertificateKeyFile /etc/pki/tls/certs/ssl.key
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateChainFile /etc/pki/tls/certs/root.ca.pem
</VirtualHost>
进行问题排查:
tail 50 /var/log/httpd/error_log
tail 50 /var/log/httpd/ssl_error_log
答案 2 :(得分:9)
在我的情况下,我将证书混合在一起:SSLCertificateFile具有private_key,SSLCertificateKeyFile具有证书。
答案 3 :(得分:5)
离开这里,因为这是第一次谷歌搜索错误:当你安装一个新的密码短语保护证书并且只是重新加载apache配置(而不是完全重启apache)时,也会导致这种情况。重新加载本身不会抛出任何错误,但它也不会要求您的密码并且无法解密证书。
可以通过完全重启apache来解决这个问题,这将要求密码短语并允许你解密。
答案 4 :(得分:0)
使用重新创建* .key文件并再次复制粘贴内容解决了问题。
答案 5 :(得分:0)
或者在禁用旧密码自动输入之前需要。 评论规则如:
#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script
答案 6 :(得分:0)
最近在Apache 2.4中安装SSL期间,我们遇到了相同的错误-'asn1编码例程'
我们已经正确放置了所有文件,并将它们正确指向.conf文件。经过一天的故障排除,我们意识到在获得证书后配置没有问题。
我们使用供应商的内置系统创建了证书签名请求(CSR)。这使我们可以粘贴我们创建的密钥。供应商返回的SSL证书应该映射此CSR,该CSR已映射到我们的私钥。显然不匹配。他们提供的SSL证书不会映射到CSR。
可能的原因 由于unix行尾(\ n而不是\ r \ n)/编码(ANSI / UTF8)/预期的新行,CSR转换的关键在卖方方面是错误的。
我们使用OpenSSL自己创建了CSR,并绕过了供应商CSR的产生。 有效。因此,在我们的情况下,使用OpenSSL创建密钥和相应的CSR并使用它来生成公共SSL即可。
OpenSSL命令
openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
答案 7 :(得分:0)
我遇到了这个问题,因为向我发送了粘贴到电子邮件中的IIS样式.p7b文件的内容。像.pem一样,它具有“ ----- BEGIN CERTIFICATE -----”和“ ----- END CERTIFICATE -----”标签,内容使用类似外观的base64编码。我将其转换为* .pem文件,如下所示:
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
之后,Apache 2.2很高兴。
答案 8 :(得分:-3)
您的SSL证书似乎未遵循ASN.1编码规则。本书可以帮助您找到原因:ASN.1 Complete