![某些客户端在所有浏览器上都会收到“基于证书的身份验证失败”错误](https://linux22.com/image/1441702/%E6%9F%90%E4%BA%9B%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%9C%A8%E6%89%80%E6%9C%89%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8A%E9%83%BD%E4%BC%9A%E6%94%B6%E5%88%B0%E2%80%9C%E5%9F%BA%E4%BA%8E%E8%AF%81%E4%B9%A6%E7%9A%84%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5%E2%80%9D%E9%94%99%E8%AF%AF.png)
我在多台 Ubuntu / LAMP 服务器上托管多个 SSL 站点。这些服务器的设置相当标准,例如,没有客户端证书配置。绝大多数用户都没有问题,但现在出现了两起特定证书在两台客户端计算机(Vista 和 Windows 7)上出现错误的情况。我已经与 Vista 用户一起调试了这种情况,到目前为止,我得到了以下信息:
问题只发生在特定
*.domain.tld
证书上。来自同一服务器且设置完全相同的其他非常相似的证书工作正常。来自其他服务器(银行、Gmail 等)的其他证书也工作正常。到同一服务器IP的http流量运行正常。
该问题至少发生在 Firefox 35、Chrome 40 和 IE(未指定)上。
Chrome 出现错误基于证书的身份验证失败。
Firefox 出现错误ssl_error_access_denied_alert。
IE 自然会发出一些模糊的“网页无法显示”的提示。
机器正在运行 Windows Defender、Windows 防火墙和某个版本的 F-Secure。尝试禁用所有这些,但没有帮助。
家庭安全未启用。
这似乎不是一个CA链错误。
这似乎不是与无效服务器证书相关的错误。
两台机器的时钟均设置正确
我觉得客户端的机器出了问题。那会是什么?配置错误、恶意软件还是其他什么?
网络转储显示 SSL 握手没有进行太长时间:(这是我在服务器上看到的所有数据包)
(该站点在标准端口上提供服务
443
。此处显示的服务器端口6443
映射到443
防火墙上的标准端口。)
还有一件事:在服务器日志中,我看到一些来自客户端 IP 的 HTTP(非 HTTPS)请求带有User-Agent: Microsoft Windows Network Diagnostics
,还有一个请求没有Host
或User-Agent
标头。这是在与用户进行电话调试时发生的。用户肯定没有手动发出此请求。
还有一件事:客户端可以使用 HTTP 成功访问相同的站点。