Обнаружение совместимости TLS браузера

У нас есть сайт SSL, на котором хост недавно отключил старые SSL-протоколы, такие как TLS 1.0 и ниже. В зависимости от браузера посетитель сайта получает пустую страницу или загадочное сообщение об ошибке при посещении сайта, если браузер, который они используют, не поддерживает, по крайней мере, TLS 1.1.

Я надеялся создать целевую страницу, которая не находится на порту SSL, и где я могу обнаружить возможности браузера, если он поддерживает TLS 1.1 и выше. Если это не так, я хочу показать им дружеское сообщение, чтобы обновить браузер или использовать другой браузер.

Это что-то, что можно сделать, используя библиотеку javascript на стороне клиента? Если да, то что я должен использовать.

Спасибо.

Ответы

Ответ 1

Вы можете использовать API, предоставленный Как мой SSL?.

В следующем примере я проверяю tls_version. Проверка given_cipher_suites также может быть хорошей идеей.

<script>
window.parseTLSinfo = function(data) {
  var version = data.tls_version.split(' ');
  console.log(
    version[0] != 'TLS' || version[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 + '.'
  );
  console.log(data);
};
</script>
<script src="https://www.howsmyssl.com/a/check?callback=parseTLSinfo"></script>

Ответ 2

Есть как минимум два веб-сайта, которые будут проверять возможности браузера для вас, включая SSL Labs (https://www.ssllabs.com/ssltest/viewMyClient.html) и HowsMySSL (https://www.howsmyssl.com/). HowsMySSL также имеет хороший API, который можно легко проверить из JavaScript.