Saltar al contenido

Configuración de SSLCipherSuite en Apache para admitir TLS 1.0, 1.1 y 1.2

Solución:

La siguiente configuración es (o solía ser) la mejor configuración según SSLLabs:

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA"

Sin embargo, excluirá todos los navegadores más antiguos (¡incluido Opera Mini!), Porque carece de conjuntos de cifrado que no sean PFS y RC4. Puede agregar lo siguiente (antes de la cotización de cierre, por supuesto) para habilitar RC4, incluido un respaldo (última entrada) a RC4 sin PFS:

:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:RC4-SHA

Debe alentar a los usuarios a actualizar lo antes posible. RC4 está roto y ya no debe usarse, especialmente sin PFS.

Para lograr mejores calificaciones, envíe también un encabezado HSTS (para que esto funcione, debe habilitar mod_header):

Header always set Strict-Transport-Security "max-age=63072000;"

Esta configuración no funcionará para Apache <2.2.26, porque no es compatible con la criptografía de curva elíptica.

Actualizar:
Recién comprobado, sigue siendo bueno para A +. 🙂 Creo que esto requiere un certificado con SHA256.

Actualización de octubre de 2015:
Recientemente encontré otro generador para configuraciones SSL, proporcionado por Mozilla. Ordena los cifrados para que Chrome no diga que estás usando un paquete de cifrado obsoleto.

 SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                                                           ^^^^^^^^

La desactivación de los conjuntos de cifrado SSLv3 desactiva todos los conjuntos de cifrado introducidos con SSL3.0. Dado que estos conjuntos de cifrado también se utilizan con versiones posteriores de SSL (TLS1.0 +) y los nuevos conjuntos de cifrado se introdujeron principalmente con TLS1.2, esta configuración hace que TLS1.0 y TLS1.1 no estén disponibles debido a que no se comparten cifrados. Por lo tanto, el protocolo está efectivamente restringido a TLS1.2.

Si llamaras openssl ciphers -V <cipher> con su cadena de cifrado, verá que todos los cifrados disponibles requieren TLS1.2.

Por ejemplo: openssl ciphers -V TLSv1.2.

Encontré esta recomendación en Cipherli.st:

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off 
SSLUseStapling on 
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *