Algunos usuarios reciben avisos de certificates SSL no confiables

He estado recibiendo reportes de usuarios que visitan nuestro sitio recibiendo errores de "este certificate no es de confianza" al visitar nuestro sitio a través de https. No parecen tener ningún problema, pero dos personas separadas en mi equipo han recibido este error aleatoriamente cuando están en una networking wifi diferente a la de nuestra oficina. No tienen el mismo problema en la oficina.

Leo en certificates intermedios pero esto parece ser apenas una cosa del browser, no una edición relacionada de la networking.

Tengo un cert SSL de GoDaddy, está en una aplicación de Rails que se ejecuta en nginx + unicornio.

¿Alguien tiene alguna otra idea de por qué esto podría suceder? Estoy bastante perplejo.

Yo obtengo lo siguiente (expuesto) al ejecutar openssl s_client -connect $hostname:443 .

CONNECTED(00000003) depth=2 C = US, O = "The Go Daddy Group, Inc.", OU = Go Daddy Class 2 Certification Authority verify error:num=19:self signed certificate in certificate chain verify return:0

Este problema está relacionado con la adición de toda la cadena de certificates. Para mí, necesitaba concatenar un file gd_bundle.crt en mi certificate distribuido y volver a cargarlo al server. Fui capaz de verificar que funcionó mediante el uso de un comprobador SSL en línea.

Supongo que ya sabe cómo funciona SSL / TLS: Los certificates SSL tienen que ser firmados por una autoridad de confianza (CA) y las autoridades de confianza han implementado sus keys públicas (certificates raíz) en el software del browser. Las keys privadas de las autoridades de confianza se volvieron muy valiosas y una pérdida sería un crash de máxima cnetworkingibilidad. Por tanto, las autoridades de confianza (CA) han bloqueado sus keys privadas y no las utilizan para firmar requestes de certificates comunes de sus clientes. Para ello usan sub certificates y sub sub certificates (los denominamos certificates intermedios).

Su browser puede ver esa cadena de confianza (su certificate -> certificate intermedio # 2 del CA -> certificate intermedio # 1 del CA -> certificate raíz de la CA) y seguirlo.

En realidad, la mayoría de los certificates ofrecen más de una cadena de confianza. Este es un fall-back en caso de que los browseres no tienen el certificate raíz correcto implementado.

Para permitir que la mayoría de los browseres sigan su cadena de confianza, tiene que concatenar el certificate de server y todos los certificates intermedios necesarios en un file de text grande. Reinicie el server y pruebe con OpenSSL si las cadenas de confianza de su certificate están funcionando.

Si no está familiarizado con OpenSSL, puede utilizar el website de Qualys SSL Labs . Aquí puede ver si todas las cadenas de confianza proporcionadas están funcionando, así como otra información muy útil acerca de su configuration SSL / TLS.

Puede agregar un file PEM que contenga la cadena de confianza GoDaddy en la directiva SSLCertificateChainFile en su configuration de vhost.