如何修复“未find证书 – Chrome已请求证书的应用”Android / Google Chrome问题

问题

我们的部分网站用户在访问我们网站的安全区域,Android设备和Google Chrome浏览器时遇到问题。

看起来像这样;

没有证书发现'错误,如三星Galaxy S6(Android v5)上的Chrome中所见

我已经能够使用Browserstack的物理设备测试在以下设备上复制该问题;

  • 三星Galaxy S6,三星Galaxy S5,三星Galaxy S4(Android v5和v4.4)
  • Nexus 6(Android v6,v5和v4.4)
  • Moto X 2nd Gen(Android v6和v5)

我的研究

我在网上阅读的所有文章,论坛和问题(除非我正在搜索错误的东西,并没有很多)指向服务器和/或SSL证书设置和配置,并且遇到的问题是按设计。

建议修复1

到目前为止,我发现的最有用的文章是铬问题跟踪器上的问题268055“未find证书” 。

注释18建议在IIS中更改SSL设置;

如果您有权访问IIS,我可以解决此问题。 基本上,您需要转到SSL设置并确保取消选中“要求SSL”,并为客户端证书选择“忽略”

评论28支持它;

对于非Google员工,只有在遇到请求客户端证书的站点时才会出现此错误消息。 Chrome无法在此处执行任何操作 – 该网站已请求客户端证书,甚至知道客户端证书是否有效,Chrome for Android必须询问操作系统。 这是你看到的提示 – 它由Android控制,所有应用程序(谷歌或其他)都需要通过该流程。

任何配置为请求客户端证书的站点都会发生这种情况, 因此要解决此问题,请不要请求客户端证书,或者将Android设备配置为具有客户端证书 (例如,通过设备管理应用程序或通过安装PKCS#12文件) 。

kamakshi:这是所有“By Design”行为,但需要服务器操作员进行更改,所以我不确定如何处理这个bug。

评论43也是如此 ;

我不认为这个bug的人会对配置IIS了解多少。 你想和微软谈谈这件事。 从搜索周围,“忽略客户端证书”似乎是你想要的选项

我们已经做到了,但它似乎并没有产生任何影响。

IIS SSL设置

IIS SSL设置

建议修复2

Stack上的另一个问题(“ 在PC上信任的证书但在android中没有 ”)表明可能缺少中间证书;

您可能缺少证书文件中的中间证书 。 如果您已访问过具有相同证书销售商的其他网站,则会在您的浏览器中记住中间证书。 对于您网站的每个访问者来说,这可能不会 – 甚至更好 – 不会出现这种情况。 要解决SSL连接中缺少的中间证书,您需要将中间证书添加到您自己的证书文件中

我已经检查过,我们有域证书( 不是通配符证书),中间证书和根证书,所以我认为这也不是问题。 我还在Networking4all网站上运行了一个站点检查程序测试,并在Qualys SSL网站上进行了SSL测试 ,它们都没有错误或警告。

我的问题

还有其他人遇到过这个问题吗? 我们可以尝试修复其他任何解决方案吗? 我现在没有想法,所以任何建议都会非常感激。

一些额外的细节以防万一

该网站所在的服务器运行的是Windows Server 2008 R2和IIS 7.5,我们的SSL证书提供商是Thawte。

提前致谢!

刚刚解决了这个完全相同的问题,这就是我发现的……

服务器规格(基本上与OP相同)

  • Windows Server 2008 r2
  • IIS 7.5
  • SSL提供商:GeoTrust RapidSSL

第一期:过期加密政策

一些文章指出服务器可能有过时的加密策略。 一些研究表明,必须使用registry设置配置所有内容。 有关详细信息,请参阅MS支持文章如何限制在Schannel.dll中使用某些加密算法和协议 。

不确定您的服务器是否是最新的? SSL Labs的服务器测试是validation网站加密策略的绝佳工具。

手动编辑registry?

MS Support文章详细介绍了如何编辑registry项。 AACK! 更多的研究和我发现Nartac软件称为IIS Crypto的一个很棒的实用程序,只需单击即可更新所有registry项。 仅供参考:还需要重新启动。

来自Nartac Software网站:

IIS Crypto是一个免费工具,使管理员能够在Windows Server 2008,2012和2016上启用或禁用协议,密码,哈希和密钥交换算法。它还允许您重新排序IIS提供的SSL / TLS密码套件,实施最佳实践只需单击一下,即可创建自定义模板并测试您的网站。

第二个问题:IIS SSL站点设置不正确

由于IIS的默认设置将SSL设置设置为“接受”客户端证书,因此该问题的根源。 无需接受客户端证书,因此只需将设置设置为“忽略”(来自OP建议的修复#1映像)。

注意:图像显示“需要SSL”未选中; 对于这个讨论,是否检查是不相关的。 重要的是网站可以使用https连接。

忽略IIS中的客户端证书

包起来

一旦服务器重新配置了加密策略并且IIS SSL设置已设置为忽略客户端证书,将解决“ 找不到证书 ”错误。