12 votos

¿Cómo puede funcionar un certificado SSL sólo para algunos clientes?

Mi proveedor de alojamiento web ha hecho recientemente volver a emitir y reinstalar un certificado SSL para mi dominio, después de que dejaran caducar el antiguo por error.

Ahora soy capaz de navegar el sitio web a través de HTTPS de nuevo, y también lo es mi anfitrión, y también lo son varios otros usuarios.

Sin embargo, algunos usuarios (al menos una docena de cientos) siguen recibiendo Your connection is not secure mensajes de error en diferentes navegadores y plataformas. (Está resultando difícil diagnosticar un problema que no puedo reproducir).

Tengo entendido que diferentes navegadores utilizan diferentes listas de Autoridades de Certificación (CA).

  1. ¿Cómo es que un usuario que ejecuta la misma versión de Firefox que yo (45.0.1 en OS X) recibe un SEC_ERROR_UNKNOWN_ISSUER error (sólo para mi sitio) mientras que yo no? ¿Qué lo hace posible? Dicho usuario borró su caché y reinició su portátil.

He realizado una Comprobación de SSL en digicert.com . El resultado es este:

El certificado SSL no es de confianza

El certificado no está firmado por una autoridad de confianza (comprobación de el almacén root de Mozilla). Si compró el certificado de una autoridad de confianza de confianza, probablemente sólo necesite instalar uno o más certificados intermedios intermedios. Póngase en contacto con su proveedor de certificados para que le ayude a esto para su plataforma de servidor.

  1. ¿Cómo es que puedo conectarme al sitio sin error SSL si este es el caso?

1 votos

My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake. - ¿Cómo es que has dejado esta responsabilidad en sus manos?

3 votos

Simplemente porque no soy administrador de sistemas, les alquilo un servidor dedicado administrado. (Para la pequeña historia de fondo, escribo material de aprendizaje de idiomas y el código, en la parte superior de la gestión del negocio, por lo que hacer sysadmin también, aunque interesante, sería uno de los sombreros demasiado).

7 votos

@joeqwerty: ¿Porque es su trabajo? Les está pagando literalmente para que resuelvan estas cosas por él.

22voto

s1lv3r Puntos 241

La cadena del certificado está incompleta. Lo más probable es que tu proveedor no haya instalado algún certificado intermedio al instalar el nuevo certificado.

La mayoría de las veces estos certificados intermedios son proporcionados por la autoridad SSL, para dar soporte a algunos navegadores y sistemas operativos antiguos. Esa es la razón, que mientras funciona para usted, no funciona para algunos de sus clientes.

Una gran utilidad para comprobar los problemas de SSL en su sitio web es el Prueba de servidor SSL por SSLlabs . Como puedes ver en el enlace anterior, no sólo tienes un problema de cadena aquí, sino que también el algoritmo de firma utilizado para crear tu certificado es débil, tu servidor web sigue siendo vulnerable a la Ataque de POODLE y todavía soporta RC4, que también se considera inseguro ...

No quiero decir nada en contra de tu proveedor de servidores web, pero en tu situación yo les mandaría un correo para que arreglen todos estos problemas lo antes posible, o para que se cambien de proveedor...

0 votos

Gracias, eso es muy útil. Por pura curiosidad, ¿alguna idea de por qué un cliente con OS X y la misma versión de Firefox que el mío recibe un SEC_ERROR_UNKNOWN_ISSUER error mientras que yo no? ¿Podría ser que la versión de su sistema operativo sea diferente?

1 votos

@FabienSnauwaert Sí, si te desplazas hasta "Handshake Simulation", la prueba de SSLLabs intentará simular varias combinaciones de SO/versión de navegador. El navegador no maneja las conexiones SSL totalmente por sí mismo, sino que depende en parte de la implementación del sistema operativo. Así que definitivamente la versión del SO hace una diferencia.

4 votos

No es sólo que los clientes puedan tener diferentes listas de CAs. También es posible que algunos de los clientes almacenen en caché los certificados intermedios, de modo que un sitio con un certificado intermedio ausente puede funcionar si el navegador ha visitado previamente un sitio que ha configurado correctamente ese certificado intermedio.

12voto

Jenny D Puntos 14396

Para que un certificado sea de confianza, debe estar firmado por una entidad que a su vez sea de confianza para su combinación de navegador/OS, o que a su vez haya sido firmado por dicha entidad. Esto suele hacerlo una CA root de confianza que firma una CA intermedia, y la CA intermedia firma su certificado. Esto crea una cadena, así:

  1. CA root en la que confía su ordenador y que firma
  2. CA intermedia, que firma
  3. Su certificado, que sólo es de confianza debido a la cadena que conduce a la CA root.

El problema aquí es con el certificado de la CA intermedia. Para asegurarse de que todo el mundo puede validar la cadena hasta la CA root, su proveedor debería incluir el certificado intermedio en su configuración del servidor. En este caso, no lo han hecho.

La razón por la que funciona para algunos usuarios es que tienen el certificado intermedio en su propio "almacén de confianza". En esos casos, aceptarán su certificado porque ya confían en el intermedio. Pero en el caso de que tus visitantes tengan un sistema operativo/navegador diferente, no tienen el certificado intermedio, por lo que tendrían que obtenerlo de tu servidor web - y tu servidor web no lo entrega, por lo que no tienen forma de verificarlo.

0 votos

Gracias, ahora me ayuda a ver el tema con claridad. Hay algún truco para que los usuarios añadan el certificado intermedio a su propio "almacén de confianza" mientras espero que mi anfitrión arregle el certificado? por ejemplo: visitando otro sitio SSL que dependa de él o así?

1 votos

@FabienSnauwaert No hay ningún truco, por desgracia. El simple hecho de visitar un sitio que tenga el mismo certificado intermedio no ayudará; tendrían que descargar realmente el certificado y añadirlo manualmente a su navegador. Creo que este certificado en particular está incluido en los navegadores más recientes - funciona en Firefox 45.0.1 pero no en 43.0.4, así que fue incluido en algún lugar entre esas dos versiones. Así que si puedes hacer que tus clientes actualicen sus navegadores, eso ayudaría.

4 votos

@JennyD Los certificados intermedios se almacenan en la caché de los navegadores modernos, por lo que es bastante probable que funcione la visita a un sitio diferente que utilice el mismo intermedio. Sin embargo, eso no es algo que uno deba pedir a sus usuarios... (ver: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )

0voto

jarvis Puntos 55

Si usted estuviera usando Fijación de la clave pública HTTP y su proveedor le ha dado un nuevo certificado, las claves públicas pueden haber cambiado ya. Estas claves se guardan en el navegador del cliente durante el periodo que hayas especificado.

0voto

Theresa Puntos 11

Tuve el mismo error, y resulta que me había olvidado de incluir una directiva SSLCertificateChainFile apuntando a mi fullchain.pem. Una vez que añadí eso, obtuve el "Certificado TLS está correctamente instalado" de digicert.

SSLCertificateFile /etc/letsencrypt/live/unternet.net/fullchain.pem
SSLCertificateChainFile /etc/letsencrypt/live/unternet.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/unternet.net/privkey.pem

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: