有没有办法检测访问者是否信任SSL连接/证书?我真的找不到网上或stackoverflow上的任何东西。我认为这是一个非常罕见的问题。
我正在使用StartSSL的证书。它适用于大多数常见和现代浏览器。但在使用IE的Windows Phone上,我收到了警告。这是因为默认情况下,Windows Phone上的IE不知道根证书。
解决方案很简单:只需下载证书 - 两次点击/点按即可。我想提供一个关于如何做到这一点的普通访客的小指南。但是,只有遇到问题的访问者才能收到消息。
答案 0 :(得分:1)
通过HTTPS连接到您网站的访问者如果不信任您的证书,则无法访问您的网站。一旦添加了异常,就无法确定它是否被普遍信任或异常。
也许您可以尝试构建一个用户代理列表,并猜测它们的默认CA应该是什么,以便在这种情况下能够显示其他消息。这不是一个完美的规则(因为你永远无法完全控制客户信任的内容,这是用户/管理员的责任),并且具有用户代理特定内容的缺点;特别是,它不一定可靠,您将没有完整的数据库,并且已经添加了例外或永久导入证书的用户将看到此附加消息(除非您使用类似cookie的内容记住)。
如果您的初始页面是纯HTTP,您可以尝试向您的HTTPS站点发送XHR请求并报告它是否有效。 (您可能需要考虑同源策略。)
答案 1 :(得分:-1)
我不确定是否有一种自动检测这种情况的万无一失的方法。您可能不得不依赖于解决方法。
通过检查标题中的用户代理来检测请求是否来自手机,检查它是否是第一次访问您的网站(没有您的网站的cookie等)以及他们是否是第一次用户,重定向响应到(HTTP)页面,其中包含安装证书的说明。您可以在该页面上提供一个复选框,供用户在此过程中抑制该重定向行为。如果他们希望它被抑制,请设置一个cookie,或将他们的偏好存储在服务器上(如果有身份验证)。