我通过电子邮件收到了我的证书,然后创建了必要的文件并复制了它。我去重新启动我的服务器,收到了以下错误。
[Wed 2012年2月8日13:02:06] [错误]初始化:无法从文件/home/sslcertificates/mydomain. crt读取服务器证书[Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218529960错误:0 D 0680 A8:asn 1编码例程:ASN1_CHECK_TLEN:错误标记[Wed Feb 08 13:02:06 2012] [错误] SSL库错误:218595386错误:0 D 07803 A:asn 1编码例程:ASN1_ITEM_EX_D2I:嵌套的asn 1错误
有人有什么想法吗?
9条答案
按热度按时间izkcnapc1#
导致此错误消息的另一个可能的故障源是:而不是我链接到认证请求文件的证书文件。当您阅读文件的第一行时,可以识别出它:两者皆可
或者
:—)
cnjp1d6j2#
情况:Apache 2.4使用StartSSL证书生成ASN编码错误
发布日期:
默认情况下,某些SSL颁发者会加密SSL密钥文件,因此请确保在服务器上解密该文件,并将其指向虚拟主机。
只需回显密钥文件以确保其未加密。
解密mod_ssl的密钥文件
对于Apache conf(httpd.conf)中的SSL配置,添加以下配置并重新启动Apache。
故障排除:
tail 50 /var/log/httpd/error_log
tail 50 /var/log/httpd/ssl_error_log
5gfr0r5j3#
在我的情况下,我有证书混合:SSLCertificateFile具有私钥,SSLCertificateKeyFile具有证书。
sczxawaw4#
在这里留下这个,因为这是第一次谷歌搜索错误:当你安装了一个新的密码保护的证书,然后重新加载apache配置(而不是完全重新启动apache)时,也会导致这种情况。重新加载本身不会引发任何错误,但它也不会询问你的密码,也无法解密证书。
它可以通过完全重新启动apache来解决,这将要求密码短语并允许您解密。
f1tvaqid5#
通过重新创建 *.key文件并再次复制粘贴内容解决了问题。
gzjq41n46#
或者您需要在禁用旧密码自动输入之前。注解规则如下:
pzfprimi7#
最近在Apache 2.4中安装SSL时,我们遇到了同样的错误-“asn 1编码例程”
我们已经正确地放置了所有的文件,并在.conf文件中正确地指向它们。经过一天的故障排除,我们意识到问题不是在我们获得证书后的配置。
我们使用供应商的内置系统创建了证书签名请求(CSR)。这允许我们粘贴我们创建的密钥。供应商返回的SSL证书应该Map此CSR,而此CSRMap到我们的私钥。显然它不匹配。他们提供的SSL证书没有Map到CSR。
可能的原因由于unix行结尾(\n而不是\r\n)/编码(ANSI/UTF8)/需要新行,供应商端的CSR转换关键字错误。
我们使用OpenSSL自己创建了CSR,并绕过了供应商CSR生成。它成功了。因此,在我们的案例中,使用OpenSSL创建密钥和相应的CSR,并使用它生成公共SSL。
OpenSSL命令
0yycz8jy8#
我遇到这个问题是因为我收到了一个IIS样式的.p7b文件的内容,它被粘贴到了一封电子邮件中。它有“-----开始CERTIFICATE-----”和“-----END CERTIFICATE-----”标记,就像.pem一样,并且内容使用了一个类似的base64编码。我将它转换成了一个 *.pem文件,如下所示:
在那之后,Apache 2.2很开心。
s71maibg9#
(Linux解决方案)这是很久以前发布的-但我有另一种方法来解决这个问题:通过编辑/etc/apache2.conf将错误日志记录更改为更详细的模式,并找到以下块:
并将LogLevel更改为更低的值-我选择了trace1。然后重新启动apache:
我收到了同样的错误消息,但当我转到/var/log/apache2/error.log中的错误日志时,有更多的错误消息来帮助解决问题。我能够确定我将密钥文件描述符指向了错误的文件。
请确保将apache2.conf更改回warn并在故障排除后重新启动apache2服务,以避免error.log文件变得过大。