有人可以帮助我了解如何验证我的 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 地址。