¿Esta cadena de certificados SSL está rota y cómo solucionarla?

13

Para el certificado SSL en el dominio example.com, algunas pruebas me dicen que la cadena está incompleta y dado que Firefox mantiene su propio almacén de certificados, podría fallar en Mozilla ( 1 , 2 , 3 ). Otros me dicen que está bien , al igual que Firefox 36, que me dice que la cadena de certificados está bien.

ACTUALIZACIÓN: Probé en Opera, Safari, Chrome e IE en Windows XP y MacOS X Snow Leopard, todos funcionan bien. Solo falla en Firefox <36 en ambos sistemas operativos. No tengo acceso para probar en Linux, pero para este sitio web es menos del 1% de los visitantes, y la mayoría son probablemente bots. Entonces, esto responde a las preguntas originales "¿esta configuración muestra advertencias en Mozilla Firefox o no" y "¿Esta cadena de certificados SSL está rota o no?".

Por lo tanto, la pregunta es ¿cómo puedo saber qué certificados necesito colocar en el archivo ssl.ca para que Apache pueda servirlos para evitar que Firefox <36 se atragante?

PD: Como nota al margen, el Firefox 36 que utilicé para probar el certificado era una instalación completamente nueva. No hay posibilidad de que no se quejara porque había descargado un certificado intermedio durante una visita previa a un sitio que usa la misma cadena .

Gaia
fuente
1
No necesariamente; en cualquier caso, si puede responder a su propia pregunta, lo alentó a hacerlo :)
BE77Y
Sí, respondí esto, pero sería más útil volver a preguntar cómo solucionarlo en lugar de si está roto. ¿Está bien hacerlo?
Gaia
1
Absolutamente. Mantiene las respuestas aquí también relevantes (desde el momento en que se publicaron, tenían razón, ¿verdad?)
canadiense Luke
@Gaia: ah, ok, ahora entiendo a qué te refieres. No estoy 100% por encima de lo que se consideraría la mejor práctica en eso, pero mi instinto sería actualizar su pregunta para incluir "¿y cómo debería resolverse esto?" En su caso, según la respuesta de Steffen Ullrich, el certificado "COMODO RSA Certification Authority" no se encuentra en la cadena: puede evitar posibles errores del cliente pero incluirlo en su cadena. Esto solo se considera una mala práctica en la medida en que agrega una sobrecarga potencialmente innecesaria al apretón de manos; de lo contrario, no tiene ningún efecto perjudicial.
BE77Y
Además de lo anterior, también vale la pena señalar que la mayoría de los clientes modernos, si no todos, deberían estar absolutamente bien con la configuración tal como está actualmente (según la prueba SSLlabs)
BE77Y

Respuestas:

8

Si la cadena es suficiente depende del almacén de CA del cliente. Parece que Firefox y Google Chrome han incluido el certificado para la "Autoridad de certificación COMODO RSA" a finales de 2014. Para Internet Explorer, probablemente depende del sistema operativo subyacente. Es posible que la CA aún no se incluya en las tiendas de confianza utilizadas por los no navegadores, es decir, rastreadores, aplicaciones móviles, etc.

En cualquier caso, la cadena no es completamente correcta, como se puede ver en el informe de SSLLabs :

  • Una ruta de confianza necesita que el navegador confíe en la nueva CA. En este caso, todavía envía la nueva CA, que está mal, porque las CA de confianza deben estar integradas y no deben estar incluidas en la cadena.
  • La otra ruta de confianza está incompleta, es decir, necesita una descarga adicional. Algunos navegadores como Google Chrome realizan esta descarga, mientras que otros navegadores y no navegadores esperan que todos los certificados necesarios estén contenidos dentro de la cadena enviada. Por lo tanto, la mayoría de los navegadores y aplicaciones que no tienen la nueva CA incorporada fallarán con este sitio.
Steffen Ullrich
fuente
Tengo la impresión de que Chrome e IE usan el almacén de certificados de Windows. ¿Estás seguro de que Chrome tiene su propia tienda suplementaria?
Gaia
SSLlabs dice "Problemas de cadena = Ninguno", pero veo el análisis detallado de la cadena a continuación.
Gaia
1
FWIW, Chrome en OS X sí utiliza el almacén de certificados del sistema operativo, @SteffenUllrich.
BE77Y
1
@Gaia: no se olvide de los clientes móviles, tienen su propia tienda de certificados que también puede diferir entre varias versiones de Android.
Steffen Ullrich
1
@Gaia: tome la segunda ruta de confianza que muestra SSLLabs y simplemente agregue el certificado de cadena que falta. Esta cadena puede ser validada tanto por los navegadores que tienen la CA más reciente como por los que aún no la tienen.
Steffen Ullrich
8

Me puse en contacto con Comodo y descargué un archivo bundle.crt de ellos. Lo renombré a ssl.ca, según la configuración de este servidor, y ahora el certificado pasa todas las pruebas. El Chain issues = Contains anchoraviso no es un problema (ver más abajo).

SSL Labs, ampliamente considerado como la prueba más completa, ahora muestra Chain issues = Contains anchor, mientras que antes solía mostrar Chain issues = None(mientras que los otros mostraron un problema con la cadena). Esto realmente no es un problema ( 1 , 2 ), aparte de 1kB adicional que el servidor envía al cliente.

Mi conclusión

  1. Ignore la prueba de SSL Labs donde dice Chain issues = Contains anchorO elimine el certificado raíz del archivo de paquete (consulte este comentario a continuación).

  2. Siempre realizar una prueba secundaria en al menos uno de los otros tres sitios de prueba ( 1 , 2 , 3 ) para asegurar su cadena es muy bien cuando los laboratorios SSL dice Chain issues = None.

Gaia
fuente
2
Realmente no tiene sentido incluir el certificado "ancla" / "raíz" real. Sin embargo, realmente desea el certificado intermedio. Supongo que inicialmente no tenía el certificado intermedio, lo que causó los problemas.
Håkan Lindqvist
@ HåkanLindqvist ¿Entonces debería descifrar los certificados, averiguar cuál es el certificado raíz y eliminarlo de la cadena?
Gaia
1
Sugeriría hacerlo aunque no sea un problema tan serio como faltar certificaciones intermedias (es un poco derrochador). Fwiw, la prueba SSL de Qualy indica que 02faf3e291435468607857694df5e45b68851868es innecesario.
Håkan Lindqvist
@ HåkanLindqvist usando openssl x509 -fingerprint -in ssl.cai clavó que la parte del archivo que tiene huella digital 02faf3e291435468607857694df5e45b68851868fue el primer PEM. Lo eliminé y ahora obtengo i.imgur.com/1iG2UCz.png e i.imgur.com/m8gYbdG.png (ERROR OCSP: solicitud fallida con estado OCSP: 6 [ ocsp.comodoca.com] )
Gaia
3
Su conclusión con respecto a la advertencia "contiene ancla" es válida: vale la pena leer esta respuesta sobre Security.SE; en resumen, no hay ningún problema al enviarlo: security.stackexchange.com/a/24566/7043
Chris J