Por favor, vea las secciones EDITAR en mi propia respuesta; Contienen una explicación a este enigma .
Estoy tratando de deshabilitar RC4 para un servidor Apache 2.2.9 que se ejecuta en un CentOS 6.5 VPS y parece que no puedo tener éxito.
Se instaló un certificado validado por un negocio recientemente adquirido y las conexiones SSL funcionan bien, pero quería configurar las cosas lo mejor posible para "fortalecer la seguridad", como dicen algunos tutoriales.
Verificando la configuración con Qualys SSL Labs, la página de resultados muestra "Este servidor acepta el cifrado RC4, que es débil. Grado limitado a B".
Sin embargo, he puesto esto en ssl.conf:
SSLCipherSuite HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:!SSLv2:!SSLv3
He guardado la secuencia de comandos dada en la respuesta a esta pregunta en un archivo llamado test-ssl-ciphers.sh y he cambiado la dirección IP a una dirección de bucle invertido. Este es el resultado de ./test-ssl-ciphers.sh | grep -i "RC4"
:
Testing ECDHE-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDHE-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing AECDH-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-SHA...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing RC4-MD5...NO (sslv3 alert handshake failure)
Testing PSK-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-SHA...NO (no ciphers available)
Testing KRB5-RC4-MD5...NO (no ciphers available)
Testing EXP-ADH-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-RC4-MD5...NO (sslv3 alert handshake failure)
Testing EXP-KRB5-RC4-SHA...NO (no ciphers available)
Testing EXP-KRB5-RC4-MD5...NO (no ciphers available)
Cada una de estas líneas contiene "NO", lo que, según el script, significa que el servidor no admite la combinación de cifrado especificada.
Además, el comando grep -i -r "RC4" /etc/httpd
solo me da el archivo ssl.conf mencionado anteriormente.
Además, ejecutar openssl ciphers -V
en mi suite de cifrado no muestra ningún cifrado RC4, lo que tiene sentido dada la cadena de configuración.
Por lo tanto, de alguna manera estoy perdido por qué los sitios web de verificación SSL me dicen que "el servidor acepta RC4". Incluso enumeran los siguientes cifrados como aceptados:
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
¿Alguien tiene una posible explicación? ¿Qué estoy haciendo algo mal? ¿Quizás haya otro lugar donde se configure ese soporte de RC4 o "aceptación"?
Gracias.
[ EDITAR ] Utilizando un CentOS 6.6 en una máquina virtual en casa, ejecuté el script nuevamente contra mi VPS usando su nombre de dominio en lugar de la dirección de bucle invertido. Esta configuración implica que la instancia de openssl proporciona la lista de cifrados en la máquina virtual: todavía no tengo RC4 entre los cifrados que producen SÍ.
fuente
Qualys SSL labs parece muy sensible a los hosts predeterminados, etc. Verifique que TODOS sus HTTPS VirtualHosts en esa dirección IP usen exactamente la misma configuración (aparte de los archivos de certificado), tuve un problema similar en el que algunas de las pruebas de Qualys probaron en mi VirtualHost objetivo y algunas de las pruebas parecían recoger un VirtualHost predeterminado. Mi vhost objetivo tenía solo un cifrado habilitado, pero Qualys estaba encontrando una lista mucho más grande del vhost predeterminado.
También encontré un script de mejor aspecto aquí que brinda información más exhaustiva sobre las pruebas SSL.
fuente
Solo estaba mirando esto para uno de mis sitios. Sobre la base de la respuesta de @ AbVog, descubrí que mis directivas en realidad solo estaban dentro del vhost predeterminado. Cuando trasladé las directivas al contexto global, todo estuvo bien.
Como comentario aparte, también me encontré con https://cipherli.st/ que tiene una buena lista de configuración SSL para un montón de paquetes diferentes. La recomendación actual para apache es la siguiente:
fuente
En mi Fedora 25 con Apache / 2.4.25 los cifrados son manejados por las políticas de cifrado (ver / etc / cryptopolicies / backends). La configuración predeterminada tiene RC4 completamente deshabilitado, por lo que no es necesario manipular los cifrados en la configuración de Apache. Excepto por asegurarse de usar el último ssl.conf, ya que no está instalado de manera predeterminada, sino que se deja como ssl.conf.rpmnew en el directorio conf.d.
Para configurar SSL, solo tenía que especificar los certificados, ServerName y DocumentRoot. Para Squirrelmail que es.
fuente