我在运行 Linux Apache 的 CentOS 6.5 的 Web 服务器上安装了 StartSSL。shaaaaaaaaaaaaa.com 说
很好。example.com 有一个用 SHA-2 签名的可验证证书链。
然而 Debian 7.8 上的 Google Chrome 说
该连接使用 AES_128_CBC 加密,使用 SHA1 进行身份验证,并使用 ECDHE_RSA 作为密钥交换机制。
在 Debian 盒子上,我做了
mkdir ~/StartComCerts
mv /etc/ssl/certs/StartCom* ~/StartComCerts
问题就解决了。但是,要求客户更改他们的计算机并不是一个可行的解决方案。所以我从 ssls.com 购买了 GeoTrust QuickSSL Premium 证书。然后我去了https://knowledge.geotrust.com/support/knowledge-base并且显示“证书已正确安装”。但是,当我使用 Debian 7.8 上的 Chrome 访问我的网站时,我收到以下消息:
该网站使用弱安全配置(SHA-1 签名),因此您的连接可能不是私密的。
和
该网站正在使用过时的安全设置,这可能会阻止未来版本的 Chrome 安全访问它。
我在 www.ssllabs.com/ssltest/analyze.html 上测试了我的网站。它给我的网站评了 A,并说我的签名算法是 SHA256withRSA。我去了 shaaaaaaaaaaaaa.com 说
很好。example.com 有一个用 SHA-2 签名的可验证证书链。
我去了 whynopadlock.com,一切都很顺利。我还在另一台运行 Windows 7 的电脑上用 Chrome 测试,结果出现了一个绿色挂锁,没有任何错误消息。
我不知道为什么在 Debian 上的 Chrome 上会出现 SHA-1 错误。
编辑 - 2015-06-15
我在某些 Windows 系统上也遇到了 Sha-1 问题。下面是我家用 Windows 系统(左)和工作 Windows 系统(右)上的 Google Chrome 屏幕截图。它似乎在不同的系统上使用 Sha-1 缓存证书。我按照 GeoTrust 给出的说明设置了中间证书。
编辑:
我有一家家庭企业,这就是我建立网站的目的。
答案1
问题在于您的 Windows 计算机安装了 Avast 防病毒软件。Avast 在网站和 Google Chrome 之间注入了 SSL 证书。请参阅左图上方的“Avast 网络/邮件防护”。
由于 Chrome 会验证本地伪造的证书,因此 Google Chrome 会在您的计算机上显示警告。Avast AntiVirus 会伪造 SSL 证书,以便查看和扫描 SSL 流量。Qualys SSL 实验室等扫描会告诉您真相。
您可以禁用 Avast Web/Mail 防护,然后在 Google Chrome 中重试。这样,Chrome 将验证您的服务器提供的证书,而不是 Avast 在您的服务器和 Google Chrome 之间注入的注入/欺骗 SSL 证书。
左图是有关 Avast SSL 证书的信息。右图是有关您自己的 GeoTrust SSL 证书的信息。
我假设您也在 Debian 机器上使用 Linux 版本的 Avast,并且会产生与 Windows 机器类似的情况。
答案2
问题是,您的证书使用 SHA1 作为签名算法。如果您的证书实际上使用 SHA2,请检查链中的所有中间(和根)证书。每个证书都必须使用 SHA2。
SHA1 是旧(弱)技术,不应再使用。大多数 PKI 提供商都提供这两种可能性。只需下载 SHA2 链证书并将其上传到您的服务器即可。然后问题就解决了。
由于您使用的是 SHA2 证书(如上所示),因此问题可能出在其中一个中间证书上。请检查所有证书的 SHA1 版本,然后获取 SHA2 版本。