问题
有没有办法检测访问者是否信任 SSL 连接/证书?我真的在网上或 stackoverflow 上找不到任何东西。我认为这是一个非常不常见的问题。
一个用例
我正在使用来自 StartSSL 的证书。它适用于大多数常见和现代浏览器。但是在我使用 IE 的 Windows Phone 上,我收到了警告。这是因为默认情况下,Windows Phone 上的 IE 无法识别根证书。
解决方案很简单:只需下载证书 - 点击两次。我想为普通访客提供一个关于如何做到这一点的小指南。但是,只有遇到问题的访问者才能收到消息。
最佳答案
如果不信任您的证书,通过 HTTPS 连接到您网站的访问者将无法访问您的网站。添加异常(exception)后,您无法确定它是普遍可信还是异常(exception)。
也许您可以尝试构建用户代理列表并猜测它们的默认 CA 应该是什么,以便能够在这种情况下显示附加消息。这不是一个完美的规则(因为您永远无法完全控制客户端信任的内容,这是用户/管理员的责任),并且具有用户代理特定内容的缺点;特别是,它不一定可靠,您不会拥有完整的数据库,并且已经添加异常(exception)或永久导入证书的用户会看到此附加消息(除非您使用 cookie 之类的东西来记住)。
如果您的初始页面是通过纯 HTTP 传输的,您可以尝试向您的 HTTPS 站点发出 XHR 请求并报告它是否有效。 (您可能需要考虑同源策略。)
关于ssl - 在服务器端检测不受信任的 SSL 访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535823/