1

问题

有没有办法检测访问者是否信任 SSL 连接/证书?我真的在网上或 stackoverflow 上找不到任何东西。我认为这是一个非常罕见的问题。

用例

我正在使用来自 StartSSL 的证书。它适用于大多数常见和现代浏览器。但是在使用 IE 的 Windows Phone 上,我收到了警告。这是因为默认情况下,Windows Phone 上的 IE 不知道根证书。

解决方案很简单:只需下载证书 - 两次点击/点击。我想为普通访问者提供一个关于如何做到这一点的小指南。但是,只有有问题的访客才能收到消息。

4

2 回答 2

1

通过 HTTPS 连接到您网站的访问者如果不信任您的证书,就根本无法访问您的网站。一旦添加了例外,您就无法确定它是普遍受信任的还是例外。

也许您可以尝试构建用户代理列表并猜测它们的默认 CA 应该是什么,以便在这种情况下能够显示附加消息。这不是一个完美的规则(因为您永远无法完全控制客户端信任的内容,这是用户/管理员的责任),并且具有用户代理特定内容的缺点;特别是,它不一定可靠,您不会拥有完整的数据库,并且已经添加异常或永久导入证书的用户会看到此附加消息(除非您使用类似 cookie 的东西来记住)。

如果您的初始页面是通过普通 HTTP 进行的,您也许可以尝试向您的 HTTPS 站点发出 XHR 请求并报告它是否有效。(您可能需要考虑同源策略。)

于 2012-09-21T18:40:39.190 回答
-1

我不确定是否有一种万无一失的方法来自动检测这种情况。您可能不得不依赖一种解决方法。

通过检查标头中的用户代理来检测请求是否来自手机,检查他们是否是第一次访问您的网站(没有您网站的 cookie 等),如果他们是第一次用户,则将响应重定向到(HTTP ) 页面,其中包含安装证书的说明。您可以在该页面上为用户提供一个复选框,以在未来抑制该重定向行为。如果他们希望它被抑制,请设置一个 cookie,或将他们的偏好存储在服务器上(如果有身份验证)。

于 2012-09-21T18:39:43.993 回答