¿Cómo dice un navegador la diferencia entre un certificado intermedio y un certificado de entidad final?

3

Los navegadores aceptan los certificados de terminación firmados por certificados intermedios siempre que la raíz se encuentre en el almacén de certificados de confianza. Tengo entendido que un certificado de entidad final no puede firmar otros certificados (o, en cualquier caso, un navegador no aceptará dichos certificados). Si este es el caso, entonces el navegador debe poder distinguir un certificado intermedio de un certificado de entidad final. ¿Como hace esto? ¿Hay un mensaje en el certificado intermedio que diga "Este es un certificado intermedio" (que ha sido firmado por el certificado raíz para su validez)?

    
pregunta questioner 13.03.2018 - 17:23
fuente

3 respuestas

0

Navegadores & Los únicos certificados raíz de la tienda del sistema operativo, no certificados intermedios.

Su pregunta es válida, si tengo un certificado firmado por Let's Encrypt, ¿qué me impide usar ese certificado para firmar otros certificados?

Hay una bandera en el certificado que especifica si se trata de una CA o entidad final.

Para StackExchange hoy, el servidor presenta 3 certificados.

  1. DigiCert
  2. DigiCert SHA2 High Assurance
  3. * .stackexchange.com

Si analiza cada certificado, en la sección Restricción básica & Tipo de sujeto, el valor será CA para (1) & (2) pero será "EndEntity" para (3). Se espera que los navegadores y las aplicaciones no acepten certificados que no estén firmados por un certificado de CA, si en el certificado no se encuentra la extensión de Tipo de sujeto de restricción básica, el certificado se considera una entidad final de forma predeterminada.

También hay una Restricción Básica - > Restricción de Longitud de Ruta, que especifica cuánto tiempo puede ser una cadena de certificados para este certificado raíz. Esto evita que una CA intermedia emita certificados de CA por separado.

enlace

    
respondido por el keithRozario 14.03.2018 - 07:05
fuente
3

Hay varios "indicadores" en los certificados. Uno de ellos es, por ejemplo, el indicador "Soy un CA", otro es la "Longitud máxima de la cadena de certificados". Este último limita el tiempo que puede durar una cadena de certificados.

Las herramientas de certificado, como openssl, rechazarán la firma de un certificado con un certificado que no tenga el indicador de CA.

Los navegadores dejarán de validar una cadena una vez que se encuentre un certificado que no sea de CA.

No hay un indicador "Soy un intermediario", pero ese estado puede inferirse al ser un certificado de CA firmado por otra persona.

    
respondido por el LvB 13.03.2018 - 17:37
fuente
0

Cada certificado tiene un asunto que describe para quién es el certificado y un emisor que significa quién emitió (y así firmó) el certificado. Para el certificado raíz, el sujeto y el emisor son los mismos, es decir, el certificado está firmado por sí mismo ("autofirmado"). Para certificados intermedios el sujeto y el emisor son diferentes. Tanto el certificado raíz como el intermedio deben ser certificados de CA, es decir, tienen CA: verdadero en las restricciones básicas.

Según el tema y el emisor, se puede construir la cadena de certificados. Al comienzo de la cadena se encuentra el certificado del servidor, emitido por el certificado de CA # 1. Este certificado de CA # 1 podría ser autofirmado (el emisor es igual al sujeto), en cuyo caso es el final de la cadena de confianza y, por lo tanto, el certificado raíz. O podría estar firmado por otro certificado de CA, lo que significa que está en algún lugar dentro de la cadena de confianza (y no al final) y, por lo tanto, es un certificado intermedio.

Para obtener más información, consulte SSL Certificate framework 101: ¿Cómo verifica realmente el navegador la validez de un certificado de servidor dado? o Wikipedia: Cadena de confianza .

    
respondido por el Steffen Ullrich 13.03.2018 - 19:35
fuente

Lea otras preguntas en las etiquetas