Publicado el
11 de febrero de 2024
Introducción
El protocolo ACME (Entorno Automatizado de Gestión de Certificados) es un protocolo de red diseñado para automatizar el proceso de validación de dominios y la entrega de certificados X.509. El protocolo fue diseñado originalmente por el Grupo de Investigación de Seguridad de Internet (ISRG) para su propio servicio de entrega de certificados: Let's Encrypt. El protocolo ahora se publica como un Estándar de Internet en RFC 8555. El ISRG está respaldado por empresas como Cisco, Google, Mozilla o Facebook.
ACME v1 fue lanzado el 12 de abril de 2016 pero ahora está obsoleto.
La última versión actualmente soportada, ACME v2, se lanzó el March 13, 2018.
La principal nueva característica de ACME v2 es el soporte de dominios comodín. No es compatible hacia atrás con ACME v1.
Visión general
Los certificados SSL se utilizan en Internet, generalmente para asegurar las comunicaciones con un sitio web. Certifican la identidad del sitio web basada en su nombre de dominio DNS. Estos certificados son emitidos por Autoridades de Certificación públicas utilizando tres estrategias de validación:
Validación de dominio, donde el administrador del sitio web deberá demostrar que tiene control sobre el dominio DNS
Validación de la organización, donde el administrador del sitio web tendrá que demostrar que representa a la organización que posee el dominio DNS
Validación Extendida, que añade verificaciones adicionales sobre la Validación de Organización
Esencialmente, los pasos para obtener un certificado mediante el proceso de Validación de Dominio son los siguientes:
Generar una Solicitud de Firma de Certificado PKCS#10;
Cargue el CSR a la página web de la CA's;
Atestar la propiedad del dominio incluido en el CSR utilizando uno de los siguientes métodos:
Añade un desafío proporcionado por la CA en un lugar específico del servidor web;
Agregar un desafío proporcionado por la CA dentro de un registro DNS correspondiente al dominio solicitado;
Recibir un desafío proporcionado por la CA en una dirección de correo electrónico y responder a él en la página web de la CA.
Reciba e instale el certificado generado.
ACME tiene como objetivo automatizar estos mecanismos utilizados en el proceso de Validación de Dominio, proporcionando un marco que automatiza el procedimiento de verificación de identidad y la entrega del certificado.
¿Desea implementar estas prácticas PKI?
Obtenga orientación experta para implementar soluciones PKI seguras para su organización.
Obtener ayuda expertaLas comunicaciones entre un servidor ACME y un cliente ACME se basan en Notación de Objetos de JavaScript (JSON) mensajes, asegurados mediante TLS y JSON Web Signature (JWS).
La emisión de un certificado a través del protocolo ACME es muy similar a la emisión de un certificado mediante el proceso habitual de CAs DV:
Creación de una cuenta;
Solicitud de un certificado;
Demostrar la propiedad del dominio mediante el uso de un desafío.
Aquí se detalla el proceso de solicitud de un certificado usando el protocolo ACME:
El cliente debe crear una cuenta, enviar una solicitud de firma, responder a un desafío enviado por el servidor ACME y luego enviar el CSR para la firma. En la mayoría de los casos, todas estas operaciones están totalmente automatizadas.
Acerca del proceso de validación ACME
ACME especifica 3 métodos de validación diferentes, según RFC 8555:
prevalidación, donde la validación se lleva a cabo antes de la inscripción real en ACME, por medios distintos a ACME
validación http-01, donde el desafío de validación es servido por el cliente usando HTTP
validación dns-01, donde el desafío de validación está disponible a través de DNS
También se utiliza comúnmente un cuarto método de validación. Conocido como tls-alpn-01, se basa en la extensión TLS ALPN para entregar un certificado autofirmado que contiene el desafío.
Estos 4 métodos de validación tienen ventajas y desventajas, ya que it's no siempre es posible usar cada uno de ellos:
Los puertos HTTP pueden cerrarse o redirigirse agresivamente a HTTPS
Los servidores DNS pueden estar fortificados y no ser fácilmente utilizables por los clientes ACME
La extensión TLS ALPN no es compatible con todos los servidores
Muy pocos clientes realmente admiten el método de prevalidación, ya que Let's Encrypt no lo admite
Por lo tanto, al diseñar una solución de automatización PKI basada en ACME, la elección y arquitectura utilizadas para la validación son un punto clave.
Clientes ACME
El otro punto clave principal es la elección de los clientes ACME. Algunos productos o soluciones ya incluyen un cliente ACME, lo que hace que la elección sea obvia.
Para los demás casos, aquí hay una lista no exhaustiva de clientes ACME: