Apache 安装SSL证书会导致服务器在重新启动时失败

Apache 安装SSL证书会导致服务器在重新启动时失败,apache,ssl,centos,Apache,Ssl,Centos,我通过电子邮件收到了我的证书,然后创建了必要的文件并复制了它。我去重新启动我的服务器,并收到以下错误 [Wed Feb 08 13:02:06 2012][错误]初始化:无法从文件/home/sslcertificates/mydomain.crt读取服务器证书 [Wed Feb 08 13:02:06 2012][error]SSL库错误:218529960错误:0D0680A8:asn1编码例程:asn1\u检查\TLEN:错误标记 [Wed Feb 08 13:02:06 2012][er

我通过电子邮件收到了我的证书,然后创建了必要的文件并复制了它。我去重新启动我的服务器,并收到以下错误

[Wed Feb 08 13:02:06 2012][错误]初始化:无法从文件/home/sslcertificates/mydomain.crt读取服务器证书 [Wed Feb 08 13:02:06 2012][error]SSL库错误:218529960错误:0D0680A8:asn1编码例程:asn1\u检查\TLEN:错误标记 [Wed Feb 08 13:02:06 2012][error]SSL库错误:218595386错误:0D07803A:asn1编码例程:asn1_项_EX_D2I:嵌套asn1错误


有人有什么想法吗?

导致此错误消息的另一个可能的失败原因是: 而不是证书文件,我链接到了证书请求文件。 当您读取文件的第一行时,可以识别: 或者


:-)

通过重新创建*.key文件并再次复制粘贴内容解决了问题

由于这是第一次谷歌搜索错误,所以将此保留在这里:当您安装新的受密码保护的证书并重新加载apache配置(而不是完全重新启动apache)时,也可能会导致此错误。重新加载本身不会抛出任何错误,但它也不会请求您的密码短语,并且无法解密证书


可以通过完全重新启动apache来解决此问题,apache将请求密码短语并允许您解密。

或者在禁用旧密码自动输入之前需要。 注释规则如下:

#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script

在我的例子中,证书是混合的:SSLCertificateFile有私钥,SSLCertificateKeyFile有证书。

情况:Apache 2.4使用StartSSL证书生成ASN编码错误

问题:

AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key
对于ApacheConf(httpd.conf)中的SSL配置,添加以下配置并重新启动Apache

#SSL
服务器名gajen.com
SSLCertificateKeyFile/etc/pki/tls/certs/ssl.key
SSLCertificateFile/etc/pki/tls/certs/ssl.crt
SSLCertificateChainFile/etc/pki/tls/certs/root.ca.pem
有关疑难解答:

  • 首先调试Apache
    tail 50/var/log/httpd/error\u log
  • 调试mod_ssl
    tail 50/var/log/httpd/ssl\u error\u log

最近,在Apache 2.4中安装SSL时,我们遇到了相同的错误——“asn1编码例程”

我们已经正确地放置了所有文件,并在.conf文件中正确地指出了它们。经过一天的麻烦拍摄,我们意识到问题不是与配置后,我们得到了证书

我们使用供应商内置的系统创建了证书签名请求(CSR)。这允许我们粘贴我们创建的密钥。供应商返回的SSL证书应该映射到映射到我们私钥的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

我有这个问题,因为我被发送了一个IIS样式的.p7b文件的内容粘贴到电子邮件中。它有“----开始证书------”和“----结束证书------”标记,就像.pem一样,并且内容使用类似的base64编码。我将其转换为*.pem文件,如下所示:

openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

之后,Apache2.2很高兴。

当我输入错误的密码短语时,出现了这个错误。。。谢谢你的提示+1+1。很多人没有意识到(例如)在webmin类型的环境中单击“应用更改”之类的东西并不会重新加载apache,它只是尝试应用您的更改。使用CLIFYI中的“ServiceApache2Restart”应该反映出根本性的变化,我也有同样的问题,我没有读过关于ASN.1的整本书-这里的各种答案基本上暗示了解决方案。该错误本质上告诉您,其中一个文件(可能是密钥文件)的数据格式不符合模块的要求。可能它缺少行标题,或者检查内容是否有损坏。就我而言,我只是复制并粘贴了错误的文件。重做您的步骤将是这里的最佳答案。在我的情况下,我的密钥文件和证书文件被交换。谢谢你给我指明了正确的方向!我的密钥和证书都带有SSLCertificateFile,这导致了相同的错误
openssl rsa -in ssl.key -out ssl.key
# 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>
openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer