Publicado el
11 de febrero de 2024
Introducción
El protocolo ACME (Entorno de Gestión Automatizada 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 . Fue diseñado originalmente por el Grupo de Investigación de Seguridad en Internet (ISRG) para su propio servicio de entrega de certificados: Let's Encrypt . Actualmente, el protocolo está publicado como estándar de Internet en la RFC 8555. El propio ISRG cuenta con el respaldo de empresas como Cisco, Google, Mozilla o Facebook.
ACME v1 se lanzó el 12 de abril de 2016, pero ahora está obsoleto.
La última versión actualmente compatible, ACME v2, se lanzó el 13 de marzo de 2018 .
La principal novedad de ACME v2 es la compatibilidad con dominios comodín. No es compatible con versiones anteriores de ACME v1.
Descripción general
Los certificados SSL se utilizan en Internet generalmente para proteger las comunicaciones con un sitio web. Certifican la identidad del sitio web basándose en su nombre de dominio DNS. Estos certificados son emitidos por autoridades de certificación públicas mediante tres estrategias de validación:
Validación de Dominio, donde el administrador del sitio web tendrá que 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 titular del dominio DNS
Validación extendida, que agrega verificaciones adicionales a la Validación de la organización
Básicamente, 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;
Subir el CSR a la página web de una CA;
Certificar la propiedad del dominio incluido en el CSR mediante uno de los siguientes métodos:
Agregue un desafío proporcionado por la CA en un lugar específico en el servidor web;
Agregue 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 responderlo en la página web de la CA.
Recibir e instalar 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 de certificados.
¿Quieres implementar estas prácticas de PKI?
Obtenga orientación experta sobre la implementación de soluciones PKI seguras para su organización.
Obtenga ayuda de expertosLas comunicaciones entre un servidor ACME y un cliente ACME se basan en de notación de objetos JavaScript (JSON) , protegidos 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 a través del proceso DV de las CA habituales:
Creación de una cuenta;
Solicitud de certificado;
Demostrar la propiedad del dominio mediante el uso de un desafío.
A continuación se detalla el proceso de solicitud de un certificado mediante 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 la CSR para su firma. En la mayoría de los casos, todas estas operaciones están completamente automatizadas.
Acerca del proceso de validación de ACME
ACME especifica tres 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 lo atiende el cliente mediante HTTP
Validación dns-01, donde el desafío de validación se pone a disposición a través de DNS
Un cuarto método de validación también se utiliza comúnmente, conocido como tls-alpn-01, y se basa en la extensión TLS ALPN para entregar un certificado autofirmado que contiene el desafío.
Estos cuatro métodos de validación tienen ventajas y desventajas, ya que no siempre es posible utilizar cada uno de ellos:
Los puertos HTTP se pueden cerrar o redirigir agresivamente a HTTPS
Los servidores DNS pueden estar almacenados en un búnker y los clientes ACME no pueden usarlos fácilmente
La extensión TLS ALPN no es compatible con todos los servidores
En realidad, muy pocos clientes 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 de PKI basada en ACME, la elección y la arquitectura utilizadas para la validación son un punto clave.
Clientes de ACME
El otro punto clave es la elección de los clientes ACME. Algunos productos o soluciones ya incluyen un cliente ACME, lo que facilita la elección.
Para los demás casos, aquí hay una lista no exhaustiva de clientes de ACME: