No tengo claro la diferencia entre una clave CA y un certificado. ¿No es una clave de CA simplemente un certificado? Déjame intentar aclarar con un ejemplo.
Tengo un cliente y un servidor. Solo estoy tratando de validar mi conexión con mi servidor y no estoy tratando de establecer confianza con otros, por lo que no me importa firmar con una CA real.
Opción 1: Genere una CA autofirmada ( ssCA ) y utilícela para firmar un certificado ( C ). Luego instalo ssCA en el almacén de claves raíz de mi cliente y configuro mi servidor para usar el certificado C .
Opción 2: Genere un certificado autofirmado ( SSC ). Instale SSC en el almacén de claves raíz de mi cliente. Configurar mi servidor para usar el certificado SSC .
La segunda opción parece un proceso mucho más sencillo. ¿Debería funcionar eso todavía?
fuente
Primero, sobre la distinción entre clave y certificado (con respecto a la "clave CA"), se utilizan 3 piezas cuando se habla de certificados de clave pública (normalmente X.509): la clave pública, la clave privada y el certificado. La clave pública y la clave privada forman un par. Puede firmar y descifrar con la clave privada, puede verificar (una firma) y cifrar con la clave pública. La clave pública está destinada a ser distribuida, mientras que la clave privada está destinada a mantenerse privada.
Un certificado de clave pública es la combinación entre una clave pública y varias piezas de información (principalmente sobre la identidad del propietario del par de claves, quien controla la clave privada), esta combinación se firma utilizando la clave privada del emisor de la clave. certificado. Un certificado X.509 tiene un nombre distinguido de sujeto y un nombre distinguido de emisor. El nombre del emisor es el nombre del sujeto del certificado de la entidad que emite el certificado. Los certificados autofirmados son un caso especial en el que el emisor y el sujeto son el mismo. Al firmar el contenido de un certificado (es decir, emitir el certificado), el emisor afirma su contenido, en particular, el vínculo entre la clave, la identidad (el sujeto) y los diversos atributos (que pueden indicar la intención o el alcance de uso para el certificado).
Además de esto, la especificación PKIX define una extensión (parte de un certificado determinado) que indica si un certificado puede usarse como certificado de CA, es decir, si puede usarse como emisor de otro certificado.
A partir de esto, crea una cadena de certificados entre el certificado de entidad final (que es el que desea verificar, para un usuario o un servidor) y un certificado de CA en el que confía. Puede haber certificados de CA intermedios (emitidos por otros certificados de CA) entre el certificado de entidad final de su servicio y el certificado de CA en el que confía. No es estrictamente necesario una CA raíz en la parte superior (un certificado CA autofirmado), pero suele ser el caso (puede optar por confiar en un certificado CA intermedio directamente si lo desea).
Para su caso de uso, si genera un certificado autofirmado para un servicio específico, no importa si tiene la marca CA (extensión de restricciones básicas). Necesitará que sea un certificado de CA para poder emitir otros certificados (si desea crear su propia PKI). Si el certificado que genera para este servicio es un certificado de CA, no debería causar ningún daño. Lo que importa más es la forma en que puede configurar su cliente para que confíe en ese certificado para este servidor en particular (los navegadores deberían permitirle hacer una excepción explícita con bastante facilidad, por ejemplo). Si el mecanismo de configuración sigue un modelo PKI (sin usar excepciones específicas), dado que no será necesario crear una cadena (con un solo certificado), debería poder importar el certificado directamente como parte de los anclajes de confianza de su cliente, ya sea
fuente
Puede
openssl x509 -noout -text -in $YOUR_CERT
ver las diferencias entre el contenido de los archivos:En su CA autofirmada, puede ver:
Y en su certificado autofirmado, está:
fuente
Siempre debe tener una CA raíz, la CA tiene una clave que se puede usar para firmar un certificado de nivel inferior y un certificado raíz que se puede incrustar en los certificados raíz aceptados en el cliente y se usa para verificar los certificados inferiores para verificarlos. son validos. Autofirmado solo significa que usted es su propia CA. Siempre que cree un certificado autofirmado, cree una CA y luego firme un certificado de sitio con esa CA.
fuente