我们的部分网站用户在访问我们网站的安全区域,Android设备和Google Chrome浏览器时遇到问题。
看起来像这样;
我已经能够使用Browserstack的物理设备测试在以下设备上复制该问题;
我在线阅读的所有文章,论坛和问题(除非我正在搜索错误的内容,否则没有多少内容)指向服务器和/或SSL证书设置和配置,并且正在经历的问题是设计。
到目前为止,我发现的最有用的文章是Issue 268055 "No Certificates Found"关于铬问题跟踪器。
Comment 18建议更改IIS中的SSL设置;
如果您有权访问IIS,我可以解决此问题。 基本上,您需要转到SSL设置,并确保取消选中要求的SSL,并且"忽略"已选择客户端证书。
Comment 28支持它;
对于非Google员工,只有在遇到请求客户端证书的站点时才会出现此错误消息。 Chrome无法在此处执行任何操作 - 该网站已请求客户端证书,甚至知道客户端证书是否有效,Chrome for Android必须询问操作系统。这是您所看到的提示 - 它由Android控制,所有应用(Google或其他应用)都需要经过该流程。
任何配置为请求客户端证书的站点都会出现这种情况,因此要解决此问题,要么不要求客户端证书,要么将Android设备配置为具有客户端证书(例如,通过设备管理应用程序或通过安装PKCS#12文件。)
kamakshi:这就是全部" By Design"行为,但需要服务器操作员进行更改,因此我不确定如何处理此错误。
我不认为有关此错误的人会对配置IIS有太多了解。您想与Microsoft就此进行讨论。 从四处搜索,"忽略客户证书"似乎是你想要的选择。
我们已经做到了,但似乎并没有起到作用。
Stack上的另一个问题(" certificate trusted on pc but not in android")表明可能缺少中间证书;
您可能缺少证书文件中的中间证书。如果您已访问过具有相同证书销售商的其他网站,则会在您的浏览器中记住中间证书。对于您网站的每位访问者来说,这可能不会 - 甚至更好 - 不会出现这种情况。 要解决SSL连接中缺少的中间证书,您需要将中间证书添加到您自己的证书文件。
我已经检查过,我们有域名证书(不是一个通配符证书),中间证书和根证书,所以我不认为这也是问题所在。我还在Networking4all网站上进行了site checker测试,在Qualys SSL网站上进行了SSL test测试,他们都没有错误或警告。
还有其他人遇到过这个问题吗?我们可以尝试修复其他任何解决方案吗?我现在没有想法,所以任何建议都会受到高度赞赏。
网站所在的服务器运行的是Windows Server 2008 R2和IIS 7.5,我们的SSL证书提供商是Thawte。
提前致谢!
答案 0 :(得分:9)
刚刚解决了这个完全相同的问题,这就是我发现的......
服务器规格(与O.P基本相同)
有几篇文章指出服务器可能有过时的加密策略。一些研究表明,必须使用注册表设置配置所有内容。有关详细信息,请参阅MS支持文章How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll。
不确定您的服务器是否是最新的? SSL Labs' Server Test是验证网站加密政策的绝佳工具。
MS Support文章详细介绍了如何编辑注册表项。 AACK!更多的研究,我发现了一个名为IIS Crypto by Nartac Software的实用工具,只需单击即可更新所有注册表项。仅供参考:还需要重新启动。
来自Nartac Software网站:
IIS Crypto是一款免费工具,可让管理员使用 启用或禁用协议,密码,哈希和密钥交换 Windows Server 2008,2012和2016上的算法。它也可以让你 重新排序IIS提供的SSL / TLS密码套件,实施最佳实践 只需单击一下,即可创建自定义模板并测试您的网站。
由于IIS的默认设置将SSL设置设置为“接受”客户端证书,因此问题的根源。无需接受客户端证书,因此只需将设置设置为“忽略”(来自O.P.建议的修复#1图像)。
注意:图片显示“要求SSL”未选中;对于这个讨论,是否检查是不相关的。重要的是网站可以使用https进行连接。
一旦服务器重新配置了加密策略并且IIS SSL设置已设置为忽略客户端证书,将解析“ No certificates found ”错误。