¿Cómo puedo desactivar TLS 1.0 y 1.1 en apache?

31

¿Alguien sabe por qué no puedo desactivar tls 1.0 y tls1.1 actualizando la configuración a esto?

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

Después de hacer esto, recargo apache, hago un escaneo SSL usando ssllabs o comodo ssl tool, y todavía dice que los tls 1.1 y 1.0 son compatibles. Me gustaría eliminar estos?

David
fuente

Respuestas:

45

Cuando tiene múltiples TLS VirtualHosts y utiliza la Indicación de nombre del servidor (SNI), es una sintaxis permitida tener una SSLProtocol directiva para cada VirtualHost, pero a menos que tenga IP VirtualHosts en la práctica, la configuración desde la primera aparición de la SSLProtocoldirectiva se usa para todo el servidor y / o todos los VirtualHosts basados ​​en nombres que admiten TLS 1 .

Por lo tanto, revise su principal httpd.conf(y todos los fragmentos incluidos de, por ejemplo, conf.d/*.confe incluye similares) para ver más casos de la SSLProtocoldirectiva.

Su sintaxis es correcta, aunque estoy de acuerdo con la respuesta de ezra-s de que, cuando expande la alltaquigrafía, puede mejorar ligeramente:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

simplemente usando:

 SSLProtocol TLSv1.2
HBruijn
fuente
Todo esto tiene sentido, sin embargo hice lo que me recomendó. Busqué en mi directorio / etc / httpd todas las referencias de "SSLProtocol". Luego lo actualicé a SSLProtocol TLSv1.2, luego reinicié y todavía muestra que tls 1.0 y 1.1 son compatibles. También lo probé en otro de mis servidores y el mismo problema. ¿Algunas ideas?
David
1
Falsa alarma, esto fue almacenado en caché por los informes de comodo y ssllabs. Parece estar informando correctamente ahora. Gracias.
David
3
Creo que recomendaría usar "todos" con menos para los protocolos que no desea. Las versiones futuras de apache definen "todos" de manera diferente a medida que se desarrollan nuevos estándares y se descubre que los viejos estándares son inseguros.
bobpaul
si estás usando Letsencrypt, no olvides revisar/etc/letsencrypt/options-ssl-apache.conf
Memes
9

que ha especificado es suficiente, no debería mostrar ningún otro protocolo. Recuerde que SSLLABS almacena en caché las pruebas recientes. Aunque saber que no hay otros protocolos que lo definan como lo hizo es algo complicado a propósito.

En cualquier caso, puede usar eso o simplemente:

SSLProtocol TLSv1.2
ezra-s
fuente
¿Hay alguna diferencia si especificas -ALL +TLSv1.2?
Chazy Chaz
"Todos" se expande a "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". No veo un beneficio al usar "-Todos". En realidad, de la documentación no está claro que "-todos" sea incluso una sintaxis válida. Puede hacer el protocolo [+/-] pero no todo es un protocolo: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul
6

También estaba luchando con este problema, modificar las configuraciones con la SSLProtocoldirectiva no funcionaba. Terminé agregando lo siguiente a mi configuración de host virtual:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Que funcionó perfectamente. Puede leer más sobre la SSLOpenSSLConfCmddirectiva aquí .

Shultisj
fuente
4

Deshabilite la versión TLS1.0 en Apache.

Si tiene múltiples alojamientos virtuales, entonces debe actualizar el archivo de todas las configuraciones, de lo contrario, ssl.conf es suficiente.

Para verificar la versión de soporte de TSL:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

Modifique el archivo de configuración de Apache, vi /etc/httpd/conf.d/web.confelimine todos los TLS y permita solo TLS1.2.

SSLProtocol TLSv1.2

Validar después de la modificación.

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart
Narendra Kumar
fuente
-1

Debe reiniciar el servicio Apache con el siguiente comando para reflejar los cambios.

sudo service apache2 restart

El siguiente código funcionará bien para mí, puede consultar este artículo para obtener más detalles, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>
Karthik
fuente
Esto no deshabilitará nada. Solo habilitará TLSv1.2. Y cómo reiniciar varía de una distribución a otra, e incluso entre versiones en la misma distribución.
Gerald Schneider