Detect if browser has TLS enabled

2019-05-10 20:36发布

问题:

Is there a way to check if a browser has TLS enabled?

I'm limited to using HTML and Javascript.

回答1:

In Javascript, utilizing ActiveX, and intended for IE7,

(function(){
var key = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\SecureProtocols";
var t = document.getElementById("detectREG_output");
var Shell = new ActiveXObject("WScript.Shell");
var value = Shell.RegRead(key);
t.innerHTML = value;
})();

This outputs a bitfield, with decimals equating to:

168 = SSL 3.0, SSL 2.0, TLS 1.0 Enabled

160 = SSL 3.0, TLS 1.0 Enabled

40 = SSL 3.0, SSL 2.0 Enabled

8 = SSL 2.0 Enabled

0 = None are enabled

MSDN on IE7 and HTTPS



回答2:

The only solution I can find is configuring apache to respect a certain order of cipher :

SSLCipherSuite !aNULL:!eNULL:!EXPORT:!DSS:!DES:!SSLv2:RC4-SHA:RC4-MD5:ALL
SSLHonorCipherOrder on

for example. And Then in a PHP page (behind a https) display $_ENV['SSL_PROTOCOL']. Finally use the result in JS.