ssl - navegador - Diferencia entre CA autofirmado y certificado autofirmado
los certificados autofirmados causarĂ¡n advertencias en el navegador (4)
No tengo clara 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.
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: genere una CA autofirmada ( ssCA ) y utilícela 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 ). Instalar SSC en el almacén de claves raíz en mi cliente. Configure mi servidor para usar certificado SSC .
La segunda opción parece un proceso mucho más simple. ¿Debería funcionar eso?
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 múltiples 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: Creación de Autoridades de Certificación y certificados SSL autofirmados
Primero, sobre la distinción entre clave y certificado (con respecto a "clave de CA"), hay 3 piezas utilizadas cuando se habla de certificados de clave pública (generalmente 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 con respecto a la identidad del propietario del par de claves, quienquiera que controle la clave privada), esta combinación se firma con la clave privada del emisor del 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 donde el emisor y el sujeto son los mismos. Al firmar el contenido de un certificado (es decir, emitir el certificado), el emisor confirma su contenido, en particular, el enlace 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).
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 verificar que son validos. 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.
Puede openssl x509 -noout -text -in $YOUR_CERT
para ver las diferencias entre los contenidos de los archivos:
En su CA autofirmado, puede ver:
X509v3 extensions:
X509v3 Basic Constraints:
CA:TRUE, pathlen:0
Y en su certificado autofirmado, es:
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE