2010-10-26 14 views
47

No estoy seguro de la diferencia entre una clave CA y un certificado. ¿No es una clave CA simplemente un certificado? Déjame intentar y aclarar con un ejemplo.Diferencia entre la CA autofirmada y el certificado autofirmado

Tengo un cliente y un servidor. Solo intento validar mi conexión con mi servidor y no intentar establecer la confianza con los demás, así que no me importa firmar con una CA real.

Opción 1: generar una CA autofirmado (SsCA) y usarlo para firmar un certificado (C ). Luego instalo ssCA en el almacén de claves raíz en mi cliente y configuro mi servidor para usar el certificado C.

Opción 2: Generar un certificado autofirmado (SSC). Instale SSC en el almacén de claves raíz en mi cliente. Configure mi servidor para usar el certificado SSC.

La segunda opción parece un proceso mucho más simple. ¿Debería funcionar eso?

+0

Realmente una buena pregunta! –

Respuesta

40

Ambas opciones son válidas, la opción 2 es más simple.

La opción 1 (configurar su propia CA) es preferible cuando necesita varios certificados. En una empresa, puede configurar su propia CA e instalar el certificado de esa CA en el almacén de claves raíz de todos los clientes. Esos clientes luego aceptarán todos los certificados firmados por su CA.

La opción 2 (autofirmar un certificado sin CA) es más fácil. Si solo necesitas un certificado individual, entonces esto es suficiente. Instálelo en los almacenes de claves de sus clientes y listo. Pero cuando necesita un segundo certificado, debe volver a instalarlo en todos los clientes.

Aquí hay un enlace con más información: Creating Certificate Authorities and self-signed SSL certificates

+2

Buena respuesta ¡Agradable! –

1

Siempre debe tener una raíz CA, el CA tiene una clave que se puede utilizar para firmar un certificado de nivel inferior y un certificado raíz que puede ser embebido en los certificados raíz aceptados en el cliente y que se utiliza para verificar la baja certificados para verificar que sean válidos. Auto firmado significa que usted es su propia CA. Cada vez que creas un certificado autofirmado creas una ca y luego firmas un cert de sitio con esa CA.

47

En primer lugar, acerca de la distinción entre la clave y el certificado (en relación con "clave de CA"), hay 3 piezas utilizadas cuando se habla de certificados de clave pública (por lo general 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 encriptar con la clave pública. La clave pública está destinada a distribuirse, mientras que la clave privada debe 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, quienquiera que controle la clave privada), esta combinación se firma con la clave privada de el emisor del certificado. Un certificado X.509 tiene un nombre distinguido de sujeto y un nombre completo 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 donde el emisor y el sujeto son los mismos. Al firmar el contenido de un certificado (es deciremitir el certificado), el emisor afirma su contenido, en particular, la vinculación entre la clave, la identidad (el sujeto) y los diversos atributos (que pueden indicar la intención o el alcance del uso del certificado).

Además de esto, la especificación PKIX define una extensión (parte de un certificado dado) que indica si un certificado se puede usar como un certificado CA, es decir, si se puede usar como un emisor para 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 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 se necesita estrictamente una CA raíz en la parte superior (un certificado de CA autofirmado), pero a menudo es el caso (puede optar por confiar directamente en un certificado CA intermedio si lo desea).

Para su caso de uso, si genera un certificado autofirmado para un servicio específico, no importa si tiene el indicador de CA (extensión de restricciones básicas). Necesitará que sea un certificado de CA para poder emitir otros certificados (si desea construir 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 más importa 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), ya que no será necesario construir una cadena (con un solo certificado), usted debería poder importar el certificado directamente como parte de los anclajes de confianza de su cliente, ya sea un certificado de CA o no (pero esto puede depender del mecanismo de configuración del cliente).

+0

Gracias por la información. Voy a darle a Helge la respuesta correcta, ya que llegó antes y fue más breve. Sin embargo, esto fue bueno saberlo. – Pace

2

Puede openssl x509 -noout -text -in $YOUR_CERT para ver las diferencias entre el contenido de los archivos:

En su auto-firmado CA, se puede ver:

X509v3 extensions:               
     X509v3 Basic Constraints: 
      CA:TRUE, pathlen:0 

Y en su certificado autofirmado, es:

X509v3 extensions:               
     X509v3 Basic Constraints: 
      CA:FALSE 
Cuestiones relacionadas