He pisado este pozo antes. He olvidado cómo practicar, pero aún recuerdo este principio. Explícalos a grandes rasgos:
El paquete de instalación del navegador almacena algunos de los certificados raíz (claves públicas) en los que confía.
Por seguridad, los emisores de certificados suelen almacenar las claves privadas correspondientes a estos certificados raíz en una bóveda completamente desconectada. Estas claves privadas raíz se utilizan en la bóveda para emitir algunos certificados "intermedios", y las claves privadas de estos certificados intermedios tienen la autoridad para emitir el siguiente nivel de certificado. Estas claves privadas intermedias se instalan en servidores online para ganar dinero emitiendo certificados de sitios web. Una vez que estos servidores son hackeados, el editor puede emitir una orden de revocación usando la clave privada del certificado raíz físicamente aislada en la bóveda para eliminar la confianza de estos certificados intermedios sin tener que desconfiar completamente del certificado raíz del editor. Firma un nuevo certificado de emisión intermedia y serás una buena persona que puede ganar dinero.
Aquí viene la pregunta.
El navegador solo reconoce el certificado raíz. Para la certificación del certificado intermedio, tú (la web) tienes que emitir tu propio certificado.
Un sitio web HTTPS correctamente configurado debe incluir la cadena completa de certificados en el certificado. Por ejemplo, utiliza el comando openssl s_client -connect www.wosign.com:443 para ver la configuración del sitio web de Wosign. El resto del contenido se puede ignorar, solo hay que mirar el párrafo de la cadena de certificados: --- Cadena de certificados 0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Privado Organización/serialNumber=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\ xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\ x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xE8\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\ xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com i:/C=CN/O=WoSign CA Limited/CN=WoSign Clase 4 EV CA 1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Clase 4 EV CA i:/C=CN/O=WoSign CA Limited/CN=Autoridad de Certificación de WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Autoridad de Certificación de WoSign i:/C=IL/O=StartCom Ltd./OU=Firma Segura de Certificados Digitales/CN=Autoridad de Certificación StartCom ---
0, 1 y 2 son los números de serie de cada nivel de certificado en la cadena de certificados. 0 es el certificado que utiliza la página web para ser verificado. Su CN debe corresponder al nombre de dominio del sitio web. Después de cada número de serie, la línea que comienza por s se refiere al certificado, y la línea que comienza por i se refiere a quién emitió el certificado.
Se puede observar que el CN de 0 contiene un nombre de dominio chino sospechoso y un dominio en inglés www.wosign.com. Está emitido por WoSign CA Limited/CN=WoSign Clase 4 EV Server CA.
Un certificado de 1 es el emisor de 0. El propio 1 se emite mediante otro certificado, la Autoridad de Certificación de WoSign. Veamos el siguiente nivel, 2. Dice que la Autoridad de Certificación de WoSign la emite StartCom (jaja, resulta ser un subcontratista). )
Así que, tras verlo a ese nivel, el navegador dice: ah, conozco al emisor del 2, y está mencionado en el paquete de instalación, StartCom. Firma y validación correctas, así que confianza 2. Luego también deberías confiar en el 1 emitido por el 2 y el 0 emitido por el 1. Así que esta web es de fiar.
--
Sin embargo, si el sitio web está configurado para contener solo a sí mismo en el archivo CRT y no una cadena de certificados lo suficientemente completa como para ser verificada por los datos integrados del navegador, puede ser rechazada por el navegador. Como qué openssl s_client -connect touko.moe:443 --- Cadena de certificados 0 s:/CN=touko.moe i:/C=CN/O=WoSign CA Limited/CN=WoSign CA Certificado SSL Gratuito G2 --- Solo hay 0 en un grupo. Descripción El touko.moe en la línea s se emite mediante WoSign CA Free SSL Certificate G2 en la línea i. Se ha ido.
Esto es lo más sorprendente de esta trampa: no siempre es cierto si el navegador falla en verificar en este punto. Hay dos situaciones: R. Nunca había visto esto desde que se instaló el navegador. Entonces la validación falla. B. Si el navegador ha visto y verificado i antes, entonces la verificación será exitosa.
Normalmente el administrador irá a la web https del emisor del certificado para comprar el certificado, y el navegador lo verificará y luego almacenará en caché todos los certificados intermedios que se verifican correctamente, ahorrando tiempo en el futuro. Cuando el administrador (por error) configuró su web y fue a navegar por la prueba, no tuvo ningún problema. Porque su navegador ya reconoce este certificado intermedio.
Sin embargo, muchos usuarios pueden no haber visitado otros sitios web correctamente configurados emitidos por este certificado intermedio. Por lo tanto, la validación falla porque no puede encontrar un emisor de confianza.
Es comparable al control de emisiones de escape de los vehículos diésel Volkswagen. Todo estaba bien cuando lo revisaron. En cuanto salen fuera, ponen veneno.
EDITO: Cómo arreglar ...... Probablemente sea añadir la configuración SSLCertificateChainFile al configurar el servidor y usar el archivo bundle proporcionado por la web del emisor del certificado (el archivo contiene varios certificados intermedios para establecer la conexión entre tu certificado y un certificado de alta confianza).
|