Tenemos un sitio web de SSL en el que el anfitrión ha recientemente discapacitados mayores protocolos como SSL TLS 1.0 y abajo. Dependiendo del navegador, el visitante del sitio se presenta una página en blanco o un críptico mensaje de error cuando visita el sitio, si el navegador que está utilizando no admite, al menos, TLS 1.1.

Tenía la esperanza de crear una página de destino que no está en el puerto SSL y donde puedo detectar la capacidad del navegador si es compatible con TLS 1.1 y arriba. Si no es así, quiero mostrarles un mensaje amistoso para actualizar su navegador o por el uso de un navegador diferente.

Es algo que puede lograrse mediante el uso de cliente de javascript del lado de la biblioteca? Si es así, entonces lo que debo usar.

Gracias.

  • Yo creo que no se puede detectar directamente con JS, pero se puede intentar el uso de ajax a páginas diferentes a su servidor que utilice los protocolos diferentes.
  • Así que, ¿cómo informar a la versión anterior del navegador al usuario de que su navegador no está soportado por el sitio?
  • Es fácil: sólo tiene que insertar un html en el documento, o producir algunos alert, o algo así. La parte más difícil es detectar el soporte de TLS.
  • Esto es lo que estoy pidiendo. Cómo detectar el TLS versión de apoyo.
InformationsquelleAutor Aamir | 2015-06-23

5 Comentarios

  1. 32

    Puede utilizar la API proporcionada por Cómo es mi SSL?.

    En el siguiente ejemplo, puedo comprobar el tls_version. La comprobación de given_cipher_suites también puede ser una buena idea.

    HTML:

    <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>

    • Exactamente lo que yo estaba buscando! Muchas gracias!
    • Una cosa triste es que no es un js biblioteca puedo descargar localmente. No sé por cuánto tiempo se mantiene la API disponible para nosotros.
    • Mi SSL» es software de código Abierto y se puede encontrar en GitHub.
    • ¿Cómo le llama a esta API si TLS está completamente desactivado en el explorador de clientes? Utiliza una conexión segura por lo que si TLS está desactivado, entonces no hay ninguna solicitud enviada a fuego la devolución de llamada.
    • Supongo que si el navegador no puede conectarse a ese sitio, un error evento será enviado a la script elemento, por lo que un onerror controlador de eventos atributo de contenido debe detectar que.
    • El mensaje está mal, aunque… es posible que Tu navegador soporte TLS 1.1 o 1.2, pero puede ser desactivado. Ningún problema necesario de ir a través de una actualización, mientras que sólo podría activar en la configuración.
    • Si alguien es experto en tecnología suficiente para deshabilitarlo, entonces probablemente va a ser capaz de entender el mensaje. Usted también podría hacer algún browser sniffing adivinar si la característica es justo deshabilitado o no es compatible.
    • Si, por ejemplo, ejecutar internet explorer 8 en Windows 7, a continuación, TLS 1.1 y 1.2 será desactivado por defecto. Sí, MS eligió para deshabilitar por defecto…

  2. 4

    Hay al menos dos sitios web que se comprobará la capacidad del navegador para usted, incluyendo SSL Labs (https://www.ssllabs.com/ssltest/viewMyClient.html) y HowsMySSL (https://www.howsmyssl.com/). HowsMySSL también tiene una buena API que se puede comprobar fácilmente desde JavaScript.

    • Sólo para que sepas, HowsMySSL ha empezado a cobrar la suscripción.
    • +1 – ssllabs.com/ssltest/viewMyClient.html en realidad se muestra todas las versiones de TLS que se puede negociar, que es lo que yo estaba buscando.
  3. 2

    De hecho, usted no puede comprobar el TLS versión. Tuve que cargar un script de un sitio que sólo es compatible con TLS 1.2 (a diferencia de mi página). El uso de la simple etiqueta script en HTML no dan ninguna pista de que el guión no estaba cargado. Como resultado terminé usando la siguiente secuencia de comandos para cargar JS desde un dominio diferente:
     

    $.ajaxSetup({'cache':true});
    $.getScript('{scriptUrl}').done(function(){
       alert("done");
    }).fail(function( jqxhr, settings, exception ) {
        alert(jqxhr.status);
        alert(jqxhr.responseText);
        alert(exception);
    });

     

    En caso de TLS problemas de la jqxhr.el status 404 así que usted puede mostrar un mensaje al usuario.

  4. 2

    Pequeña nota; código aparte creo que la gente debe ser consciente de si estás presentando tu usuario con un mensaje de error con respecto a esto, usted debe entender que TLS versiones en no solo un navegador de restricción, pero esencialmente a nivel de SO. Tienes que tener activado en su equipo y su navegador lo soporte. Usted puede estar en el más reciente de chrome, pero si en la Configuración de Internet (en Windows) está desactivado, usted todavía tiene una negociación TLS problema.

  5. 2

    Aquí es una manera
    Crear una imagen con jQuery, y agregar un atributo src, yo uso un botón de PayPal, ahora todos los que la solicitud de PayPal debe a través de TSL1.2
    Espero que esto pueda trabajar

    jQuery('<img />').on({
        load: function() {
          console.log("support TSL1.2");
        },
        error: function() {
          console.log('no support TSL1.2');
        }
    }).attr('src','https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif');

Dejar respuesta

Please enter your comment!
Please enter your name here