Un certificado está firmado por la CA que lo emite. Un certificado autofirmado, por definición, no es emitido por una CA (o es su propia CA, si desea verlo así).
Un certificado puede tener CA power , es decir, ser confiable para firmar otros certificados, o no, dependiendo de si contiene una extensión Basic Constraints
con el indicador cA
establecido en TRUE
( cf el estándar ).
Lo que sucede es lo siguiente: cuando alguna aplicación quiere validar un certificado (por ejemplo, un navegador web que quiere hacer SSL con un servidor y acaba de obtener el certificado del servidor), querrá crear una cadena de certificados que comienza con un "ancla de confianza" (uno de los certificados en su almacén de certificados de "raíz confiable") y finaliza con el certificado para validar (denominado "EE" como "entidad final"). Las reglas exactas para que una cadena sea válida son intrincate y están llenas de detalles; a los efectos de esta respuesta, limitémonos a estas condiciones necesarias:
- La cadena debe comenzar con un ancla de confianza.
- Cada certificado está firmado por el certificado anterior en la cadena (es decir, la firma en cada certificado debe verificarse en relación con la clave pública tal como se almacena en el certificado anterior).
- Cada certificado, excepto la entidad final, tiene una extensión
Basic Constraints
con el indicador cA
establecido en TRUE
.
Por lo tanto, un certificado autofirmado pero no de CA, cuando se usa como un ancla de confianza, se aceptará como como un certificado de entidad final (es decir, en una cadena reducida a ese certificado exactamente), pero de otro modo no. Este es el caso normal. Cuando, como usuario del navegador, desea aceptar un certificado autofirmado dado como válido, le dice a su navegador que el certificado autofirmado debe convertirse en un ancla confiable, pero ciertamente no ¡Quiere confiar en ese certificado para emitir otros certificados con otros nombres! Desea confiar en solo para autenticar un sitio específico.
Como es habitual, los detalles pueden variar , no todos los navegadores reaccionan de la misma manera. Pero los conceptos básicos siguen siendo:
- Un certificado autofirmado se encuentra fuera del mundo de CA: no es emitido por una CA.
- Un cliente (navegador) usa anclajes de confianza como base para lo que confía.
- Un certificado autofirmado para un servidor web, por lo general, debe ser confiable (si es que lo tiene) solo para ese servidor, es decir, agregado como un ancla de confianza, pero no etiquetado como "bueno para emitir certificados ".
Cuando una cadena se reduce a un solo certificado, es decir, la entidad final también es el ancla de confianza, esto se conoce como confianza directa : un certificado específico en el que se confía ya se conoce, exactamente , en lugar de ser confiable en virtud de ser emitido por una CA de confianza.