- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们的一些网站用户在访问我们网站的安全区域时遇到问题,在 Android 设备上,在 Google Chrome 中。
看起来像这样;
我已经能够使用 Browserstack 的物理设备测试在以下设备上复制该问题;
我在网上阅读的所有文章、论坛和问题(没有很多,除非我在寻找错误的东西)指向服务器和/或 SSL 证书设置和配置,以及问题体验是设计的。
目前我发现的最有用的文章是 Issue 268055 "No Certificates Found"在 Chrome 问题跟踪器上。
Comment 18建议更改 IIS 中的 SSL 设置;
I can fix the issue if you have access to IIS. Basically you need to go to SSL Settings and make sure Require SSL is unchecked and that "Ignore" is selected for Client Certificates.
Comment 28备份它;
For the non-Googler case, this error message only occurs when you encounter a site that requests a client certificate. There's nothing that Chrome can do here - the site has requested a client certificate, and to even know if a client certificate is valid, Chrome for Android has to ask the OS. That's the prompt you're seeing - it's controlled by Android and all apps (Google or otherwise) are required to go through that flow.
This will occur with any site configured to request client certificates, so to resolve this, either don't request client certificates, or configure your Android devices to have client certificates (e.g. via a device management application or via installing a PKCS#12 file).
kamakshi: This is all "By Design" behaviour, but requires server operators to change, so I'm not sure what to do with this bug.
和 comment 43 一样;
I don't think people on this bug would know much about configuring IIS. You'd want to talk with Microsoft about that. From searching around, "Ignore Client Certificate" seems to be the option you want.
我们已经做到了,但似乎没有什么不同。
Stack 上的另一个问题(“certificate trusted on pc but not in android”)表明可能缺少中间证书;
You might be missing an intermediate certificate in your cert file. If you have already visited another website which has the same certificate seller, the intermediate certificate is remembered in your browser. This might not - or even better - will not be the case with every visitor to your website. To solve a missing intermediate certificate in the SSL connection, you will need to add the intermediate certificate to your own certificate file.
我已经检查过,我们有一个域证书(不是通配符证书)、一个中间证书和一个根证书,所以我认为这也不是问题。我还运行了 site checker在 Networking4all 网站上进行测试,以及 SSL test在 Qualys SSL 网站上,它们的路径都没有错误或警告。
还有其他人遇到过这个问题吗?还有其他我们可以尝试解决的解决方案吗?在这一点上我没有想法,所以任何建议都将不胜感激。
网站所在的服务器运行的是 Windows Server 2008 R2 和 IIS 7.5,我们的 SSL 证书提供商是 Thawte。
提前致谢!
最佳答案
刚刚解决了这个完全相同的问题,这就是我发现的......
服务器规范(与 O.P 基本相同)
几篇文章指出服务器可能具有过时的加密策略。一些研究表明,一切都必须使用注册表设置进行配置。请参阅 MS 支持文章 How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll了解详细信息。
不确定您的服务器是否是最新的? SSL Labs' Server Test是验证您网站的加密政策的绝佳工具。
MS 支持文章详细介绍了编辑注册表项。啊!再多研究一下,我发现了一个很棒的实用程序,叫做 IIS Crypto by Nartac Software。只需单击一下即可更新所有注册表项。仅供引用:也需要重新启动。
来自 Nartac 软件网站:
IIS Crypto is a free tool that gives administrators the ability toenable or disable protocols, ciphers, hashes and key exchangealgorithms on Windows Server 2008, 2012 and 2016. It also lets youreorder SSL/TLS cipher suites offered by IIS, implement best practiceswith a single click, create custom templates and test your website.
此问题的根源在于 IIS 默认将 SSL 设置设置为“接受”客户端证书。无需接受客户端证书,因此只需将设置设置为“忽略”(来自 O.P. 建议的修复 #1 图像)。
注意:图像显示“需要 SSL”未选中;对于这个讨论,是否检查是不相关的。重要的是网站可以使用 https 进行连接。
一旦服务器重新配置了加密策略并且 IIS SSL 设置已设置为忽略客户端证书,“未找到证书”错误将得到解决。
关于android - 如何解决 "No certificates found - The app Chrome has requested a certificate"Android/Google Chrome 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37005776/
我是一名优秀的程序员,十分优秀!