Deshabilitar TLS 1.0 y 1.1 en Apache y Nginx

Todas las versiones de SSL /TLS protocolo antes de TLS 1.2 ahora están en desuso y se consideran inseguros. Muchas plataformas de servidores web todavía tienen TLS 1.0 y TLS 1.1 habilitado de forma predeterminada. Sin embargo, todos los navegadores web modernos son compatibles con TLS 1.2. Por esta razón, es una buena idea que los propietarios de sitios web verifiquen la configuración de su servidor para asegurarse de que solo las versiones actuales y seguras de SSL /TLS están habilitados y todos los demás (incluidos TLS 1.0, TLS 1.1 y SSL 3.0) están deshabilitados.

Esta guía incluye instrucciones para comprobar qué versiones de SSL /TLS están habilitados en un sitio web, deshabilitando versiones obsoletas de SSL /TLS en Apache y Nginx, y muestra ejemplos de errores del navegador resultantes de servidores que ejecutan solo versiones obsoletas e inseguras de SSL /TLS.

Marque SSL habilitado /TLS Source-Connect

Herramientas en línea

Puede comprobar rápidamente las versiones de SSL /TLS su sitio web admite visitando CDN77 TLS Cuadros e ingresando el nombre de dominio que desea verificar. Como se puede ver a continuación, https://example.com actualmente deshabilita las versiones 2 y 3 de SSL, pero habilita todas las versiones de TLS (incluido el obsoleto TLS 1.1 y 1.0):

SSL /TLS versiones compatibles con example.com

Nmap

También puede verificar el SSL /TLS versiones y cifrados compatibles con un sitio web con el código abierto nmap herramienta de línea de comandos:

nmap --script ssl-enum-ciphers -p

El puerto predeterminado para SSL /TLS is 443. El siguiente comando generará un informe para example.com:

$ nmap --script ssl-enum-ciphers -p 443 example.com Iniciando Nmap 7.80 (https://nmap.org) en 2020-08-25 13:10 EDT Informe de escaneo de Nmap para example.com (93.184.216.34) El host está activo (latencia de 0.031 s). Otras direcciones para example.com (no escaneadas): 2606: 2800: 220: 1: 248: 1893: 25c8: 1946 PORT STATE SERVICE 443 / tcp open https | cifrados-ssl-enum: |   TLSv1.0: | cifrados: |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A |       TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | compresores: | NULL | preferencia de cifrado: servidor |   TLSv1.1: | cifrados: |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A |       TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | compresores: | NULL | preferencia de cifrado: servidor |   TLSv1.2: | cifrados: |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A |       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A |       TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A |       TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A |       TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | compresores: | NULL | Preferencia de cifrado: servidor | _ fuerza mínima: Nmap hecho: 1 dirección IP (1 host arriba) escaneada en 3.88 segundos

Configuración del servidor

APACHE

Deshabilitar TLS 1.0 y 1.1 en Apache, necesitará editar el archivo de configuración que contiene el SSLProtocol directiva para su sitio web. Este archivo puede estar ubicado en diferentes lugares según su plataforma, versión u otros detalles de instalación. Algunas ubicaciones posibles son:

  • /usr/local/apache2/conf/extra/httpd-ssl.conf (instalación de Apache predeterminada)
  • /etc/apache2/mods-enabled/ssl.conf (Ubuntu / Debian)
  • /private/etc/apache2/extra/httpd-ssl.conf (Mac OS)

Cuando haya localizado el archivo de configuración correcto, busque una línea que comience con SSLProtocol. Este ejemplo, de una instalación MacOS Apache predeterminada, deshabilita SSLv3 con el - operador pero habilita TLS 1.0 y 1.1:

SSLProtocol todo -SSLv3

Puede desactivar todas las versiones obsoletas de SSL /TLS compatible con Apache especificándolos de la siguiente manera:

SSLProtocol todo -SSLv3 -TLSv1 -TLSv1.1

La configuración anterior permite TLS 1.2, así como TLS 1.3 si está disponible en su entorno.

Apache y hosts virtuales

Apache puede ejecutar más de un sitio web en un solo servidor. Estas hosts virtuales puede basarse en el número de IP, puerto o nombre de dominio, y puede incluir configuraciones que anulan la configuración básica de Apache. Por esta razón, debe verificar la configuración de cada host virtual en sus archivos de configuración, especialmente si sus cambios en el SSL / baseTLS la configuración no parece estar funcionando.

Para las versiones de Apache anteriores a 2.4.42 (construido / vinculado con OpenSSL antes de 1.1.1), no era posible especificar diferentes SSL /TLS protocolos para hosts virtuales basados ​​en nombre que comparten el mismo puerto y número de IP base: el SSLProtocol del primer host virtual se aplicó a todos los demás. A partir de Apache 2.4.42 / OpenSSL 1.1.1, el SSLProtocol de cada host virtual basado en nombre se respeta cuando el Indicación de nombre del servidor (SNI) es proporcionado por el cliente durante el SSL /TLS apretón de manos.

Una vez que haya realizado los cambios de configuración, vuelva a cargar Apache para ponerlos en práctica. Para obtener más información sobre SSLProtocol directiva, consulte la directiva de Apache documentación.

Nginx

SSL /TLS La configuración del protocolo se puede especificar en el archivo de configuración principal de Nginx (generalmente ubicado en /etc/nginx/nginx.conf) o en los archivos de configuración de su sitio. Busque una línea que comience con ssl_protocols. Por ejemplo, lo siguiente es el predeterminado nginx.conf archivo de una nueva instalación de Nginx en Ubuntu:

protocolos_ssl TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Eliminando SSLv3, ref: CANICHE

Puede editar esta línea para que solo las versiones actuales y seguras de SSL /TLS están incluidos:

protocolos_ssl TLSv1.2 TLSv1.3;

Tenga en cuenta que cualquier configuración en su configuración SSL predeterminada puede ser anulada por bloques de servidor que configuran nombres de dominio individuales, así que asegúrese de verificarlos si los cambios en la configuración de su protocolo no se reflejan en su sitio web.

Una vez que haya realizado los cambios de configuración, vuelva a cargar Nginx para ponerlos en práctica. Para obtener más información, consulte la documentación de Nginx sobre configurar servidores HTTPS.

TLS Errores del navegador 1.0 y 1.1

Gracias TLS Las versiones 1.0 y 1.1 actualmente se consideran inseguras, la mayoría de los navegadores modernos producirán un mensaje de error si encuentran un sitio web donde estos están obsoletos. TLS las versiones están habilitadas pero TLS 1.2 o 1.3 no lo es. A continuación se muestran ejemplos de estos errores:

Google Chrome

Las pruebas de Chrome se realizaron con Chrome 84 en Windows 10. Las capturas de pantalla son de Chrome. Tenga en cuenta que la versión actual de Microsoft Edge (basada en Chromium) muestra el mismo código de error que Chrome, acompañado de un texto ligeramente diferente.

Google Chrome muestra el siguiente mensaje de error cuando se conecta a un sitio web en ejecución TLS 1.0 o 1.1:

Tu conexión no es completamente segura
Este sitio utiliza una configuración de seguridad desactualizada, que puede exponer su información (por ejemplo, contraseñas, mensajes o tarjetas de crédito) cuando se envía a este sitio.
NET::ERR_SSL_OBSOLETE_VERSION

TLS 1.0 mensaje de error en ChromeAl hacer clic en el Avanzada mostrará el siguiente mensaje, más un enlace para ir al sitio web, etiquetado inseguro:

La conexión utilizada para cargar este sitio utilizado TLS 1.0 o TLS 1.1, que están en desuso y se deshabilitarán en el futuro. Una vez desactivado, los usuarios no podrán cargar este sitio. El servidor debe habilitar TLS 1.2 o posterior.

Información avanzada sobre TLS 1.0 y 1.1 en Chrome

Mozilla Firefox

Las pruebas de Firefox se realizaron con Firefox 79.0 en Windows 10.

Mozilla Firefox genera el siguiente mensaje de error cuando se conecta a un sitio web en ejecución TLS 1.0 o 1.1:

Error de conexión segura
Se produjo un error durante una conexión a [URL]. Peer usando una versión no compatible del protocolo de seguridad.
Código de error: SSL_ERROR_UNSUPPORTED_VERSION
...
Es posible que este sitio web no admita TLS 1.2, que es la versión mínima admitida por Firefox. Habilitar TLS 1.0 y 1.1 pueden permitir que esta conexión se realice correctamente.
TLS 1.0 y TLS 1.1 se desactivará permanentemente en una versión futura.

Firefox TLS Mensaje de error 1.0 y 1.1

Al hacer clic en el permitir TLS 1.0 y 1.1 El botón puede ayudar a cargar el sitio, pero no es una exención única. Para volver a inhabilitar TLS 1.0 y 1.1, vaya a about:config en Firefox y configurar security.tls.version.enable-deprecated a false.

Establezca security.tls.version.enable-deprecated en falso

Apple Safari

Las pruebas de Safari se realizaron con Safari versión 13.1.2 en macOS 10.15.6 (Catalina)

El navegador Safari de Apple cargará sitios web HTTPS usando TLS 1.0 y 1.1, pero mostrará un mensaje "No seguro" en la barra de direcciones del navegador.

TLS 1.0 sitio en Apple Safari

Para más información

Para leer sobre los problemas de seguridad asociados con versiones anteriores de TLS, por favor lea nuestro artículo, Desprecio temprano TLS para un Internet más seguro. Para obtener más información sobre las importantes diferencias entre TLS 1.2 y TLS 1.3, echa un vistazo TLS 1.3 llegó para quedarse.

Y, como siempre, si tiene alguna pregunta, comuníquese con nosotros por correo electrónico a Support@SSL.com, llamada 1-877-SSL-SECURE, o simplemente haga clic en el enlace de chat en la parte inferior derecha de esta página. También puede encontrar respuestas a muchas preguntas de soporte comunes en nuestro base de conocimientos. ¡Gracias por visitar SSL.com!

Twitter
Facebook
LinkedIn
Reddit
Correo electrónico

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.