El navegador solo puede usar el certificado que conoce. En el caso de los certificados de servidor SSL, hay tres métodos mediante los cuales el navegador obtendrá los certificados necesarios para construir una cadena desde una raíz en la que el navegador confía, hasta el certificado para validar (en su caso, el "falso"):
- El navegador puede tener una copia local de los certificados (en una tienda llamada "CA intermedia" o algo así).
- El navegador puede seguir la URL que se encuentra en los certificados. Un certificado puede tener una extensión
Authority Information Access
, que puede apuntar (con una URL) a una lugar donde se puede encontrar el certificado para el emisor del certificado que contiene la extensión.
- Se supone que un servidor SSL debe enviar su certificado como parte de una cadena completamente desarrollada.
La descarga automática funciona solo mientras la URL esté presente en los certificados y se pueda acceder a los servidores correspondientes; además, para evitar problemas desagradables de gallina y huevo, dicha URL será HTTP, no HTTPS. Sin embargo, no todos los navegadores harán esta descarga. Depende del navegador y también del sistema operativo y de su configuración. Algunos navegadores rechazarán utilizar cualquier otra cosa que no sea la cadena exacta enviada por el servidor.
Entonces, mi suposición es que su proxy, que actúa como un servidor SSL, no envía una cadena completa. Envía el certificado "falso" y la "CA intermedia de proxy", pero no la "CA intermedia de la empresa". Por lo tanto, el navegador carece de este último certificado y no puede construir una cadena completa.
Para verificar esto, use OpenSSL (la herramienta de línea de comandos):
openssl s_client -connect www.aservername.com:443
Esto imprimirá (entre otra información) los nombres del sujeto y del emisor para todos los certificados en la cadena tal como los envía el servidor.
De forma alternativa, ejecute alguna herramienta de monitoreo de red (por ejemplo, Wireshark ) para ver el mensaje SSL Certificate
del servidor, que contiene el Cadena de certificados desde el servidor.