【问题标题】:DIY check for browser support for TSL1.1 protocol?DIY 检查浏览器是否支持 TSL1.1 协议?
【发布时间】:2017-07-21 07:47:23
【问题描述】:

我将在我的网站中包含 GestPay Payment。它有一些browser requirements

买家的浏览器必须支持TSL1.1协议或最新版

如何以编程方式检查访问我网站的浏览器是否满足要求?

this answer 中的建议是使用外部服务(ssllabs.com, howsmyssl.com),但我想要一个自托管的解决方案,没有外部依赖,主要原因是安全性担心。

this articlesalesforce.com 中公开了test page,使用Chrome 开发工具,我尝试禁用javascript,并且测试工作相同。所以我想那是服务器端...

更新:

理想情况下,即使不支持 TSL1.1,我也希望允许浏览器,然后检测浏览器是否支持 TSL1.1,如果不支持,我将不显示 GestPay 支付功能。

【问题讨论】:

  • 看起来像一个服务器配置问题,而不是一个编程问题。您需要将服务器配置为仅接受 TLS 1.1 或更高版本,并且您可能应该将其配置为接受 TLS 1.2 或更高版本。
  • 谢谢詹姆斯,我更新了我的问题,我希望现在更清楚了。
  • 这不还是服务器配置问题吗?
  • 嗨,您发布的解决方案之一(我的 ssl 怎么样)实际上可以自动安装在您的网络服务器上,以便可以对自托管的页面进行检查。

标签: encryption browser feature-detection


【解决方案1】:

研究了一会,我的理解是这样的:

在这个 caniuse 表中列出了browsers not supporting tls1.1

当浏览器询问 https 页面时,它会发送支持的加密协议列表,服务器会选择最佳的。

如果服务器不允许低于 TLS1.1 的协议,浏览器将根本看不到该页面,例如这是 IE9 行为:

javascript 中无法访问 https 证书信息。

没有办法对此进行特征检测。

HTTP Headers 中该信息不可用,在PHP $_SERVER 超全局中也不可用。

所以你可以自己运行opensource HowsMySsl server(但对我来说太过分了)

所以也许我会使用用户代理嗅探来确定浏览器是否不支持 TLS1.1,即使 user-agent sniffing is bad

我希望这会帮助其他人!

【讨论】:

    猜你喜欢
    • 2017-02-09
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2012-05-09
    • 2020-01-04
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多