Líder en confianza digital para la era de la inteligencia artificial y la computación cuántica.   Descubra cómo Keyfactor lo Keyfactor posible.

¿Qué es el protocolo ACME y cómo funciona?

DevOps

En este blog, los expertos de Keyfactor explican cómo funciona el protocolo ACME, por qué es importante para los despliegues modernos de infraestructura de clave pública (PKI) y gestión de certificados, y cómo puede ayudar a las organizaciones a lograr la automatización.

¿Qué es ACME?

ACME, o Automated Certificate Management Environment, es un protocolo que permite automatizar la emisión y renovación de certificados, todo ello sin interacción humana.

El Grupo de Investigación sobre Seguridad en Internet (ISRG) diseñó inicialmente el protocolo ACME para su propio servicio de certificados, Let's Encrypt, una autoridad de certificación (CA) abierta y gratuita que proporciona certificados de dominio validado (DV) sin coste alguno. En la actualidad, otras CA, proveedores de PKI y navegadores admiten ACME para distintos tipos de certificados.

Versiones ACME

Presentado en 2016, el protocolo ACME original, v1, ofrecía un enfoque simplificado para obtener certificados SSL/TLS , aunque limitado a dominios únicos. Esta versión fundacional sentó las bases para la gestión automatizada de certificados.

En 2018 se dio un salto significativo con ACME v2, ampliando sus capacidades para abarcar certificados comodín, una característica crucial para las organizaciones que gestionan múltiples subdominios. Al mismo tiempo, se reforzó el marco de seguridad del protocolo para mejorar la verificación de la propiedad del dominio e impedir la emisión no autorizada de certificados.

Reconociendo la importancia del protocolo, el Grupo de Trabajo de Ingeniería de Internet (IETF) formalizó ACME como estándar en el RFC 8555 durante 2019. Esta estandarización impulsó la adopción generalizada, con numerosos clientes que integran la compatibilidad con ACME.

Es esencial tener en cuenta que ACME v2 es incompatible con su predecesora. Como resultado, ACME v1 se eliminó en junio de 2021, marcando una transición completa a la norma v2 mejorada.

¿Cómo funciona el protocolo?

Gracias a ACME, las organizaciones pueden agilizar y automatizar procesos que, de otro modo, llevarían mucho tiempo, como la generación de CSR, la verificación de la propiedad del dominio, la emisión de certificados y la instalación.

ACME se utiliza principalmente para obtener certificados de validación de dominio (DV). Esto se debe a que los certificados DV no requieren una verificación avanzada. Solo se valida la existencia del dominio, lo que no requiere intervención humana.

El protocolo también puede utilizarse para obtener certificados de mayor valor, como los de validación de organización (OV) y validación extendida (EV), pero estos casos requieren mecanismos de soporte adicionales junto con el agente ACME.

El objetivo del protocolo ACME es configurar un servidor HTTPS y automatizar el aprovisionamiento de certificados de confianza y eliminar cualquier transacción manual propensa a errores. Para utilizar el protocolo, se necesitan un cliente ACME y un servidor ACME, que se comunican con mensajes JSON a través de una conexión HTTPS segura.

  • El cliente se ejecuta en cualquier servidor o dispositivo que requiera un certificado SSL/TLS de confianza. Se utiliza para solicitar acciones de gestión de certificados, como la emisión o la revocación.
  • El servidor se ejecuta en una Autoridad de Certificación (CA), como Let’s Encrypt, y responde a las solicitudes de los clientes autorizados.

 

Existen numerosas implementaciones de clientes ACME diferentes disponibles para el protocolo. Está diseñado para permitir a las empresas elegir la CA que deseen, siempre que esta sea compatible con ACME.

Let’s Encrypt recomienda utilizar el cliente certbot, porque es fácil de usar, funciona en muchos sistemas operativos y cuenta con documentación útil. Otros clientes ACME populares se pueden encontrar en GitHub, como ACMESharp, acme-client, GetSSL y muchos otros.

Configuración de un cliente ACME

Una vez seleccionado un cliente, el siguiente paso es instalarlo en el dominio/servidor donde se deben implementar los certificados. Los clientes ACME pueden ejecutarse en casi cualquier lenguaje de programación y entorno, y el proceso de configuración consta de solo 5 sencillos pasos a seguir:

  1. El cliente solicita introducir el dominio a gestionar.
  2. El cliente ofrece una lista de Autoridades de Certificación (CA) que soportan el protocolo.
  3. El cliente contacta con la CA seleccionada y genera un par de claves de autorización.
  4. La CA emite desafíos DNS o HTTPS para que el cliente demuestre control sobre su(s) dominio(s).
  5. La CA envía un nonce – un número generado aleatoriamente – para que el agente lo firme con su clave privada y demuestre la propiedad del par de claves.

 

Figura 1: Proceso de configuración inicial del cliente ACME.

Configuración del cliente de protocolo ACME

Una vez que la CA verifica la autenticidad del cliente, el cliente ACME está listo para solicitar certificados en nombre del/de los dominio(s) validado(s).

Uso de ACME para implementar y gestionar certificados

La emisión y renovación de certificados mediante el protocolo ACME es sencilla. El cliente simplemente envía solicitudes de gestión de certificados y las firma con el par de claves autorizado.

Emisión/renovación: un servidor web con el agente ACME instalado genera una CSR, la envía a la CA, y la CA la emite. El proceso de emisión y renovación funciona de manera similar:

  1. El agente envía a la CA una Solicitud de Firma de Certificado (CSR) solicitando la emisión de un certificado para el dominio autorizado con una clave pública especificada.
  2. La CSR se firma con la clave privada correspondiente y la clave autorizada para el dominio.
  3. Cuando la CA recibe la solicitud, verifica ambas firmas, emite un certificado para el dominio autorizado con la clave pública de la CSR y lo devuelve al agente.

 

Figura 2: Emisión/renovación de certificados. Fuente: Let’s Encrypt.

Emisión de certificados de protocolo ACME

Revocación: para revocar un certificado, el agente firma la solicitud de revocación con el par de claves autorizado para el dominio, y la CA valida la solicitud. La CA luego publica la información de revocación a través de CRL o OCSP para evitar la aceptación del certificado revocado.

Figura 3: Revocación de certificados. Fuente: Let’s Encrypt.

Revocación del certificado del protocolo ACME

¿Cómo se utiliza el protocolo ACME?

En el informe 2024 State of Machine Identity Management, el 40% de los encuestados revelaron que sus organizaciones siguen utilizando hojas de cálculo para realizar un seguimiento manual de los certificados. De media, estas organizaciones experimentaron aproximadamente tres interrupciones inesperadas causadas por certificados caducados o mal configurados en un plazo de dos años.

A pesar del creciente uso de entornos informáticos modernos y ágiles, muchas empresas continúan implementando y gestionando certificados utilizando técnicas obsoletas que no son adecuadas para satisfacer las crecientes demandas de los entornos actuales de ritmo acelerado. La gestión manual de certificados en hojas de cálculo o bases de datos introduce ineficiencia y riesgo de interrupción o incumplimiento debido a errores humanos.

Eso es exactamente lo que destaca la documentación del protocolo ACME: “Las autoridades de certificación PKI web existentes tienden a utilizar un conjunto de protocolos ad hoc para la emisión de certificados y la verificación de identidad. Estos procedimientos ad hoc se logran haciendo que el usuario humano siga instrucciones interactivas en lenguaje natural de la CA en lugar de mediante protocolos publicados implementados por máquinas. En muchos casos, las instrucciones son difíciles de seguir y causan una frustración y confusión significativas.”

Uso de ACME para automatizar certificados

El uso extendido de certificados de servidor TLS para proteger aplicaciones y datos aumenta la probabilidad de interrupciones, ya que hay más certificados que controlar y más certificados por aplicación empresarial que pueden afectar a las operaciones. Las solicitudes, renovaciones y aprovisionamiento de certificados mediante métodos manuales y hojas de cálculo llevan horas o días. Además de requerir mucho tiempo, es un proceso propenso a errores que puede provocar dolorosas interrupciones.

ACME ayuda a aliviar esta problemática situación al permitir a los administradores de TI demostrar a la CA de forma automatizada que controlan el dominio, emitir un certificado de confianza y hacer un seguimiento de la caducidad del certificado. Además, pueden renovar o revocar automáticamente el certificado siempre que sea necesario.

ACME aporta la automatización a las implementaciones PKI complejas. O como establece la documentación del protocolo, ACME proporciona un “marco extensible para automatizar el procedimiento de emisión y validación de dominio, permitiendo así que los servidores y el Software de infraestructura obtengan certificados sin interacción del usuario. El uso de este protocolo debería simplificar radicalmente la implementación de HTTPS y la viabilidad de la autenticación basada en PKIX para otros protocolos basados en TLS.”

La importancia de la agilidad de la CA

La agilidad de la CA es la capacidad de añadir/eliminar o cambiar de una CA a otra, lo cual es fundamental para la agilidad empresarial y para evitar la dependencia de una única CA. Es una mejor práctica de la industria evitar crear una gran dependencia de una única CA. Deberíamos poder cambiar de CA de forma transparente, siempre que sea necesario y sin impacto en el negocio.

Si una organización depende de una única CA y les sucede algo, como una vulneración o una interrupción del servicio, podría tener un gran impacto en la disponibilidad de las operaciones en línea. Por esa razón, poder cambiar a una CA de respaldo es una mejor práctica.

ACME simplifica el proceso de elección de una CA de respaldo. Actualmente hay muchas CA que soportan el protocolo ACME y elegir una está a solo unos clics durante la etapa de configuración.

Keyfactor + ACME

La plataforma Keyfactor soporta la automatización y el autoservicio utilizando una sólida funcionalidad integrada, además de la automatización de certificados basada en protocolos abiertos utilizando ACME.

La plataforma puede operar como un servidor ACME, ayudándole a reducir los procesos manuales que consumen mucho tiempo y el error humano con una gestión del ciclo de vida de los certificados de extremo a extremo, y facilita a los equipos la obtención de certificados aprobados por seguridad.