Openssl 错误 19:由 GoDaddy 输入时出现“证书链中的自签名证书”

Openssl 错误 19:由 GoDaddy 输入时出现“证书链中的自签名证书”

有人可以帮助我了解如何验证我的 SSL 证书是否安装正确(或排除安装不正确的原因)吗?

我在我的 Apache 服务器上安装了 GoDaddy SSL 证书。一些用户仍在报告问题(某些版本的 IE 会提示“无法显示此页面”,但没有进一步解释),而 openssl 则表示链中有一个“自签名”证书。请注意,这是不是自签名证书。它由 GoDaddy 签名。这篇文章有一个相关的答案,但没有奏效:https://stackoverflow.com/a/4106224/1723405

以下是我已采取的步骤:

步骤 1:生成私钥

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

第 2 步:前往 GoDaddy,通过粘贴重新输入CSR.csr

步骤3:在Apache中安装crt和bundle文件并重新启动。

// In <VirtualHost>
SSLEngine on
SSLProtocol -ALL +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
SSLVerifyClient none
SSLCertificateFile      /path/to/allthingsinsurance.net.crt
SSLCertificateKeyFile   /path/to/privateKey.key
SSLCertificateChainFile /path/to/gd_bundle-g2.cr

% apachectl restart

步骤4: 到几台机器中的任意一台,使用openssl验证失败。

% openssl s_client -connect allthingsinsurance.net:443 -showcerts -CApath /etc/ssl/certs

...lots of output, shows certs I installed...
Verify return code: 19 (self signed certificate in certificate chain)

步骤5:前往在线SSL验证服务并接收混合报告:

  • whynopadlock.com:自签名错误
  • ssltest.net:自签名错误
  • ssllabs.com:好的
  • crossbrowsertesting.com:类似的错误

答案1

如果 whynopadlock.com 和 ssltest.net 抱怨证书问题,而 ssllabs.com 却说一切正常,请检查您的虚拟主机配置。SSLLabs.com 支持 SNI,而 whynopadlock.com、ssltest.net 和旧版本的 IE 则不支持。

当客户端不支持 SNI 时,Web 服务器将无法使用任何服务器名称,因此将回退到第一个匹配的虚拟主机。也许您有另一个虚拟主机用于测试目的,该虚拟主机优先于您的主网站。

解决方案是更改此顺序或为该主机使用专用 IP 地址。

相关内容