¿Cuál es el propósito de los archivos chain.pem?

¿Cuál es el propósito de los archivos chain.pem?

Una pregunta general sobre los archivos chaim.pem; Utilicé un csr obtenido de mi host y utilicé Certbot de LetsEncrypt para generar un certificado https; Usé el siguiente comando

$ certbot certonly --manual --csr archivo-con-mi-csr.txt

El certbot produjo 3 archivos 0000_cert.pem, 0000_chain.pem, 0001_chain.pem; Luego utilicé el archivo cert.pem para instalar el certificado nuevamente en mi host; Todo funcionó bastante bien;

Mi pregunta es para qué se usan los archivos "cadena", ya que no los usé en ningún lado; ¿En qué escenarios serán útiles?

Respuesta1

El resultado de Certbot es ligeramente inusual. Deberías haber recibido un archivo "fullchain.pem" que contenga todo en el orden correcto, no en varios archivos separados.

(Sin mencionar la instalación manual en sí; tendrá que automatizarla).

Mi pregunta es para qué se utilizan los archivos "cadena"

Todas las autoridades de certificación WebPKI tienen al menos un sistema de dos niveles:

  1. El certificado de CA raíz, almacenado de forma segura fuera de línea, firma certificados de CA intermedios (emisores).
  2. Las CA intermedias, almacenadas en línea, firman los certificados del servidor (entidad final).

Por ejemplo,Aquí hay un diagrama deVamos a cifrar,cuya jerarquía suele ser:

Root: "DST Root CA X3" (or possibly "ISRG Root X1")
\-- Issuing: "Let's Encrypt R3"
    \-- End-entity: "letsencrypt.org"

La mayoría de los clientes TLS (navegadores, sistemas operativos) solo vienen con elraízCertificado preinstalado. De esta manera, no es necesario actualizarlos cada vez que una CA cambia su infraestructura, solo cuando las propias CA se agregan o eliminan.

Sin embargo, para verificar la firma de cada certificado, ustednecesidadtener el certificado inmediatamente anterior (por ejemplo, no puede verificar directamente la firma del certificado del servidor utilizando solo la CA raíz; no existe una relación criptográfica directa entre los dos).

Esto significa que el cliente debe tener todos los certificados intermedios para poder completar la cadena entre una CA raíz. Si falta alguno de los intermedios, el cliente ya no tiene información suficiente para verificar el resto.

Para HTTPS, elprimarioEl método es hacer que el servidor envíe todos sus certificados de cadena, porque se supone que el servidor ya los tiene.

Algunos navegadores web tienen mecanismos alternativos para esto; por ejemplo, Firefox mantiene un caché de los intermedios "vistos anteriormente", mientras que Windows intenta descargar los intermedios utilizando la URL AIA en su certificado.

Pero no todos los navegadores hacen esto y, lo que es más importante, la mayoría de los clientes TLS no webnono tenemos ninguna alternativa de este tipo. Si bien una cadena incompleta a menudo funcionará para HTTPS, no funcionará para cosas como SMTP o IRC.

Luego utilicé el archivo cert.pem para instalar el certificado nuevamente en mi host; Todo funcionó bastante bien

Lo más probable es que sólo haya funcionado durantealgunousuarios (principalmente Windows y Firefox), pero muchos otros quedaron fuera. No asuma que porque funciona en su propio sistema, debe funcionar en el de todos los demás.

Herramientas comoLaboratorios SSLo gnutls-cli example.com:443le avisará sobre situaciones en las que el servidor no envía la cadena completa.

Sin embargo, es posible que cualquiera que sea "su host" también descargue proactivamente los intermediarios de la información AIA (sospecho ligeramente que el sistema IIS de Windowspuedeestará haciendo esto), llenando los espacios automáticamente. Pero si eso se hace en algún lugar, es bastante raro.

Uso habitual de Certbot

Normalmente, Certbot almacena los certificados recibidos en formato "listo para usar" en la /etc/letsencrypt/livecarpeta, donde fullchain.pem contiene el certificado del host y los certificados principales que sean necesarios. Por ejemplo, en Apache httpd 2.4.x usarías:

SSLCertificateFile    /etc/letsencrypt/live/example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem

Respuesta2

Se puede encontrar una explicación sencilla.aquí

Primero, ¿qué es un PEM?

PEM es un formato de archivo contenedor que se utiliza a menudo para almacenar claves criptográficas. Se utiliza para muchas cosas diferentes, ya que simplemente define la estructura y el tipo de codificación del archivo utilizado para almacenar un poco de datos.

¿Qué es un archivo PEM?

PEM es sólo un estándar; contienen texto y el formato dicta que los archivos PEM comiencen con…

Archivos pem utilizados con certificados SSL:

Archivos PEM con certificados SSL

Los archivos PEM se utilizan para almacenar certificados SSL y sus claves privadas asociadas. Hay varios certificados en la cadena SSL completa y funcionan en este orden:

El certificado de usuario final, que una autoridad certificadora (CA) asigna a su nombre de dominio. Este es el archivo que usa en nginx y Apache para cifrar HTTPS. Hasta cuatro certificados intermedios opcionales, otorgados a autoridades de certificación más pequeñas por autoridades superiores. El certificado raíz, el certificado más alto de la cadena, que está autofirmado por la CA principal.

Entonces, ¿qué es chain.pem?

chain.pem es el resto de la cadena; en este caso, es sólo el certificado raíz de LetsEncrypt

Los chain.pemarchivos contienen sus certificados intermedios.

Cuando instala un certificado SSL, debe instalar el certificado del sitio pero también los certificados intermedios. Hay importantes. Como se dijoaquí:

Un certificado intermedio funciona como sustituto de un certificado raíz porque el certificado raíz tiene sus propias capas de seguridad que garantizan que sus claves no se puedan obtener. El certificado intermedio juega una "cadena de confianza" entre un certificado de entidad final y un certificado raíz.

Yaquí:

Todas las principales autoridades de certificación utilizan certificados intermedios debido al nivel de seguridad adicional. Esto ayuda a minimizar y compartimentar los daños en caso de una emisión errónea o un evento de seguridad. En lugar de revocar el certificado raíz y literalmente todos los certificados que había firmado, simplemente revoca el intermedio, lo que solo hace que se desconfíe del grupo de certificados emitidos por ese intermedio.

información relacionada