Javascript:如何检查特定TLS版本是否在浏览器中启用?

Javascript:如何检查特定TLS版本是否在浏览器中启用?,javascript,ssl,browser-detection,browser-security,Javascript,Ssl,Browser Detection,Browser Security,例如,我想检查是否在浏览器中启用了TLS 1.0/1.1/1.2。我如何使用Javascript检查这一点 试试这个 <script> window.parseTLSinfo = function(data) { alert( data.tls_version.split(' ')[1] < 1.2 ? 'So bad! Your browser only supports ' + data.tls_version + '.

例如,我想检查是否在浏览器中启用了TLS 1.0/1.1/1.2。我如何使用Javascript检查这一点

试试这个

<script>
    window.parseTLSinfo = function(data) {
      alert(
        data.tls_version.split(' ')[1] < 1.2
        ? 'So bad! Your browser only supports ' + data.tls_version + '. Please upgrade to a browser with TLS 1.2 support.'
        : 'All OK. Your browser supports ' + data.tls_version + '.'
      );
    };
</script>
<script src="https://www.howsmyssl.com/a/check?callback=parseTLSinfo">

window.parseTLSinfo=函数(数据){
警觉的(
数据。tls_版本。拆分(“”)[1]<1.2
“太糟糕了!您的浏览器只支持“+data.tls_version+”。请升级到支持tls 1.2的浏览器。”
:'一切正常。您的浏览器支持'+data.tls_version+'。'
);
};

无法仅从浏览器本身检查有关TLS的浏览器功能。您至少需要与某个服务器建立https连接,然后该服务器将成功握手的信息回显给您


具体操作方式取决于服务器,但对于apache,您可以从SSL_协议环境变量访问TLS版本。当然,这只提供客户端和服务器之间的通用版本,也就是说,如果您的服务器只能访问TLSv1,但浏览器可以访问TLSv1.2,则通用版本将仅为TLSv1。

我无法在项目中使用第三方库。是否有一种方法可以在不依赖任何外部库的情况下进行检查?此外,我在IE中尝试了上述代码。尽管我的浏览器中启用了TLS 1.2,但它会显示消息“您的浏览器支持TLS 1.0,请更新到TLS 1.2”@Kalyan:这不是第三方库,而是第三方服务。当然,如果你愿意的话,你可以自己主持类似的活动。@Bergi:我怎么办?你能帮我吗?他们在该服务实现内部做了什么来查找TLS版本?@Kalyan:看起来他们在查看标题,或者尝试不同的加密。此外,您的服务器可能无法访问此信息。有些服务器在HTTP上运行时使用了应用HTTPS的中间人代理(如nginx),在这种情况下,您必须确保代理能够设置诸如X-FORWARDED之类的头,这是您的服务器能够理解的