Icono del sitio Blog personal de Guido Cutipa

Cómo deshabilitar versiones obsoletas de SSL/TLS en Apache

A partir del 30 de junio de 2018, para compatibilidad con PCI, los propietarios de sitios deben negarse a admitir TLS 1.0. Los protocolos TLS 1.0 / 1.1 y SSL 2.0 / 3.0 están obsoletos. No brindan la protección adecuada para la transferencia de datos. En particular, TLS 1.0 es vulnerable a diversos ataques. Las versiones anteriores de los protocolos deben eliminarse en entornos que requieren un alto nivel de seguridad.

Verificar el estado actual

El primer paso es verificar el estado de la configuración actual del certificado de seguridad del servidor, una herramienta muy útil es https://www.ssllabs.com/ssltest/index.html, para el ejemplo actual el resultado obtenido fue el siguiente:

Los navegadores modernos admiten TLS 1.2. A continuación, se explica cómo deshabilitar las versiones de TLS 1.0 / 1.1 y SSL 2.0 / 3.0 en Apache.

https://blog.qualys.com/product-tech/2018/11/19/grade-change-for-tls-1-0-and-tls-1-1-protocols?_ga=2.263562756.902508727.1602095315-1260451247.1601191251

Este artículo asume que posees los conocimientos mínimos de Linux, sabes cómo usar la terminal, y lo más importante, conoces tu servidor. La configuración es simple y se asume que estás ejecutando la terminal con la cuenta de root, si no es así, deberás adicionar ‘sudo’ a los comandos para obtener los privilegios de root.

Archivo de configuración ssl.conf

1. Usar nano (o vim) para editar ssl.conf (si se esta usando Ubuntu server, generalmente ubicado en nano /etc/apache2/mods-available/ssl.conf). 

2. Buscar la sección soporte del protocolo SSL: 

SSLProtocol all -SSLv3 

3.  Comentar la línea SSLProtocol all -SSLv3, agregando un símbolo de almohadilla delante de ella .

4.  Agregue una línea debajo :

# SSLProtocol all -SSLv3
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

5.  Se ha desactivado TLS 1.0 / 1.1 y SSL 3.0, a continuación se esta verificando más a fondo SSL Cipher Suite .

SSLCipherSuite HIGH:!aNULL

6.  Comentar la línea la línea SSLCipherSuite HIGH:!aNULL y agregar lo siguiente:

SSLCipherSuite HIGH:!aNULL:!MD5:!3DES

(opcional) Agregar opción garantiza el uso de cifrado SSL solo con un alto grado de protección, sin embargo, también se incrementará el nivel de consumo del CPU.

SSLHonorCipherOrder on

Este parámetro asegura que se utilizarán las preferencias de cifrado del servidor, no las preferencias del cliente.

Como conseguir un A+ en Qualys SSL Labs

Para obtener el ‘+’ de la calificación A+, es necesario editar el archivo:

nano /etc/apache2/conf-available/security.conf

Donde se debe adicionar la línea:

Header always add Strict-Transport-Security "max-age=15768000"

En algunos casos, al reiniciar el servidor, se muestra el error de que no tiene el módulo ‘headers’ activado, se puede activar con el comando:

a2enmod headers

Guardar el archivo y reiniciar Apache:

/etc/init.d/apache2 restart

o

service httpd restart

Let’s Encrypt

Si se esta utilizando Let’s Encrypt para generar el certificado de seguridad, adicionalmenta a la configuración anterior, se debe modificar el siguiente archivo de configuración:

nano /etc/letsencrypt/options-ssl-apache.conf

A continuación se debe modificar lo siguiente

#SSLProtocol all -SSLv2 -SSLv3
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

#SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20…
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES

Guardar el archivo y reiniciar Apache:

/etc/init.d/apache2 restart

o

service httpd restart

Prueba

Finalmente, se debe probar todas las aplicaciones que interactúan con su servidor. Si existe algún problema, se pueden eliminar los comentarios (símbolo de almohadilla #) y volver a la versión anterior del archivo. Tambien será necesario probar mediante la herramienta https://www.ssllabs.com/ssltest/index.html para obtener un resultado similar al siguiente:

Salir de la versión móvil