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

Ben*_*ree 7 ssl godaddy openssl ssl-certificate

有人可以帮助我了解如何验证我的 SSL 证书是否已正确安装(或解决未正确安装的问题)?

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

以下是我采取的步骤:

第一步:生成私钥

openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
Run Code Online (Sandbox Code Playgroud)

第 2 步:转到 GoDaddy 并通过粘贴CSR.csr.

第三步:在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
Run Code Online (Sandbox Code Playgroud)

步骤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)
Run Code Online (Sandbox Code Playgroud)

第 5 步:转到在线 SSL 验证服务并收到混合报告:

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

Lek*_*eyn 4

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

当客户端不支持 SNI 时,网络服务器将无法使用服务器名称,然后将回退到第一个匹配的虚拟主机。也许您有另一个用于测试目的的虚拟主机,其优先级高于您的主网站。

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