Permítame abordar su pregunta de raíz (intencionalmente):
Pregunta: ¿Cuál es la diferencia entre una CA comprada y una CA autofirmada? Porque, según tengo entendido, en ambos casos necesito instalar CA en el servidor para validar los certificados de los clientes.
Fondo
Para responder a esto, asegurémonos de que entendemos qué es un certificado. Cuando tiene un par de clave pública / clave privada, puede proporcionar la clave pública a quien quiera, es pública, pero ¿cómo sabrá la gente que en realidad es su clave pública su ? Imagine este escenario: Alice le envía su clave pública a Bob, pero Charlie intercepta el mensaje y reemplaza la clave pública de Alice con la suya. Bob no tiene forma de saber que las claves públicas fueron cambiadas porque todo lo que ve es una clave pública. Ahora Bob cree que tiene una conexión segura con Alice, cuando en realidad tiene una conexión segura con Charlie, que pretende ser Alice.
Certificados resuelve este problema de saber de quién es la clave pública. El proceso es que me pondré en contacto con una empresa de Autoridad de certificación y les demostraré que soy quien digo que soy (exactamente cómo quieren que pruebes que esto se responde en esta pregunta ). Luego, puedo enviarles mi clave pública y la incluirán en un certificado, que contiene la clave pública y un montón de información sobre quién soy. La CA firmará el certificado para decir "Certificamos que esta clave pública pertenece a esta persona" y que no se pueden modificar los datos del certificado. Ahora tengo un documento "oficial" que prueba que esta clave pública me pertenece. Ahora no hay forma de que Charlie pretenda ser Alice.
En la mayoría de los casos, no solicitará un certificado para usted como persona, sino para un servidor específico dentro de su empresa o, en su caso, clientes, pero la idea es la misma.
Responder
Tiene 2 formas de convertir su clave pública en un certificado:
-
Puede enviarlo a una de las CA raíz de confianza pública de Internet (Digicert, Verisign, GoDaddy, letsencrypt, etc.) que le emitirá un certificado (por un costo),
-
O puede crear su propia CA autofirmada y emitirse un certificado.
La única diferencia real entre los dos se reduce a la confianza pública; Si paga a una de las raíces públicas para certificar su clave pública, entonces todas las computadoras en Internet confiarán automáticamente en que su certificado sea genuino y auténtico porque confían en la reputación de la AC. Cero trabajo extra para ti.
Si creas tu propia CA autofirmada, cada computadora dirá "¿qué es esto y por qué debería confiar?" (recuerde que Charlie puede crear fácilmente su propia CA y crear un certificado con el nombre de Alice's adjunto a la clave pública de Charlie's ). Por lo tanto, tendrá que ir manualmente a cada computadora que necesite validar uno de estos certificados y decirle que confíe en su CA autofirmada agregando el certificado raíz autofirmado a la "Tienda de Autoridades de Certificación de Raíces de Confianza" de esa computadora.
Asesoramiento
Hacer tu propia CA raíz autofirmada no es necesariamente malo, depende de lo que estés tratando de hacer. En muchos casos, el hecho de que sus certificados sean de confianza pública en toda Internet no agrega nada. Por ejemplo, en un sistema de identificación corporativa para ingresar al edificio; a quién le importa si esas credenciales de identificación son de confianza pública o no, solo le importa si el escáner de la puerta las reconoce. O certificados de clientes en dispositivos integrados; los dispositivos deberán autenticarse en un servidor para recibir actualizaciones de firmware, solo ese servidor necesitará validar los certificados.
Si su caso de uso es uno de estos casos de uso de "sistema cerrado", entonces, por supuesto, use su propia CA autofirmada.