Dos de los obstáculos a los que se enfrentan los desarrolladores cuando realizan migraciones a HTTPS son los conceptos y la terminología. En esta guía, se proporciona una breve descripción general de ambos.
Resumen
- Usaste claves públicas/privadas para firmar y desencriptar mensajes entre el navegador y el servidor.
- Una autoridad certificadora (AC) es una organización que avala la asignación entre las claves públicas y los nombres de DNS públicos (como "www.foobar.com").
- Una solicitud de firma de certificado (CSR) es un formato de datos que une una clave pública con algunos metadatos sobre la entidad que es propietaria de la clave.
¿Cuáles son los pares de claves públicas y privadas?
Un par de claves públicas y privadas es un par de números muy grandes que se usan como claves de encriptación y desencriptación, y que comparten una relación matemática especial. Un sistema común para los pares de claves es el criptosistema RSA. La clave pública se usa para encriptar mensajes, y los mensajes solo se pueden desencriptar con la clave privada correspondiente. Tu servidor web anuncia su clave pública a todo el mundo, y los clientes (como los navegadores web) la usan para iniciar un canal seguro en tu servidor.
¿Qué es una autoridad certificadora?
Una autoridad de certificación (AC) es una organización que avala la asignación entre claves públicas y nombres de DNS públicos (como "www.foobar.com"). Por ejemplo, ¿cómo hace un cliente para saber si una clave pública específica es la clave pública true para www.foobar.com? A priori, no hay forma de saberlo. Una AC confirma que una clave determinada es la verdadera para un sitio en particular usando su propia clave privada para firmar criptográficamente la clave pública del sitio web. Esta firma es imposible de falsificar de forma computacional. Los navegadores (y otros clientes) mantienen almacenes de anclaje de confianza que contienen las claves públicas que pertenecen a las AC conocidas y usan esas claves públicas para verificar criptográficamente las firmas de las AC.
Un certificado X.509 es un formato de datos que agrupa una clave pública con algunos metadatos sobre la entidad propietaria de la clave. En el caso de la Web, el propietario de la clave es el operador del sitio, y los metadatos importantes son el nombre de DNS del servidor web. Cuando un cliente se conecta a un servidor web HTTPS, este presenta su certificado para que el cliente lo verifique. El cliente verifica que el certificado no haya vencido, que el nombre de DNS coincida con el nombre del servidor al que intenta conectarse el cliente y que una AC de anclaje de confianza conocida haya firmado el certificado. En la mayoría de los casos, las AC no firman directamente los certificados del servidor web. Por lo general, hay una cadena de certificados que vincula un ancla de confianza con uno o varios firmantes intermedios y, por último, con el certificado del servidor web (la entidad final).
¿Qué es una solicitud de firma de certificados?
Una solicitud de firma de certificado (CSR) es un formato de datos que, al igual que un certificado, une una clave pública con algunos metadatos sobre la entidad que es propietaria de la clave. Sin embargo, los clientes no interpretan las CSR; las CA, sí. Cuando deseas que una CA respalde la clave pública de tu servidor web, debes enviar una CSR a la CA. La AC valida la información en la CSR y la usa para generar un certificado. Luego, la AC te envía el certificado final y, luego, lo instalas (o, lo más probable, una cadena de certificados) y tu clave privada en el servidor web.