Articulo de referencia

Entorno de gestión automática de certificados

Jacob Hoffman-Andrews Daniel McCarney James Kasten"},"developer":{"wt":"[[Internet Security Research Group|ISRG]]"},"released":{"wt":"December 2015"},"latest release version":{"...

El protocolo Entorno de Gestión Automática de Certificados ( ACME ) es un protocolo de comunicación para automatizar las interacciones entre las autoridades de certificación y los servidores de sus usuarios, lo que permite el despliegue automatizado de infraestructura de clave pública a un coste muy bajo. [ 1 ] [ 2 ] Fue diseñado por el Grupo de Investigación en Seguridad de Internet (ISRG) para su servicio Let's Encrypt . [ 1 ]

El protocolo, basado en el paso de mensajes con formato JSON a través de HTTPS , [ 2 ] [ 3 ] ha sido publicado como un estándar de Internet en RFC 8555 [ 4 ] por su propio grupo de trabajo IETF . [ 5 ] 

Historia

Un equipo liderado por Alex Halderman en la Universidad de Michigan y Peter Eckersley en la Electronic Frontier Foundation (EFF), junto con otro equipo en Mozilla Corporation liderado por Josh Aas y Eric Rescorla, desarrollaban simultáneamente un protocolo automatizado de gestión de certificados. Al enterarse de la existencia del otro equipo, ambos se unieron para crear el Internet Security Research Group (ISRG) en mayo de 2013, una corporación sin fines de lucro de interés público , de la cual Aas se convirtió en director. [ 6 ]

El ISRG continuó desarrollando el protocolo ACME para su uso en su autoridad de certificación (CA) Let's Encrypt , con el objetivo de crear una internet libre, abierta, segura y privada, así como en sus programas de CA Boulder y Certbot. Los objetivos del protocolo ACME eran reducir el coste de los certificados TLS de confianza pública y eliminar la complejidad y la propensión a errores de la instalación de nuevos certificados. Un estudio de 2013, del que Halderman fue coautor, reveló que, en internet, solo el 45 % de los certificados TLS estaban configurados correctamente y alrededor del 20 % no se reemplazaron antes de su vencimiento. [ 7 ] Aunque otro protocolo de gestión automática de certificados, el Protocolo de Gestión de Certificados (CMTP ), se estandarizó en 1999, el ISRG diferencia ACME como «adaptado a las necesidades de la PKI web y... diseñado con la emisión automatizada y escalable como objetivo principal». [ 6 ]

Antes de abril de 2015, cuando ISRG contrató a su primer empleado a tiempo completo, el conjunto de software Let's Encrypt, incluido ACME, fue desarrollado por ingenieros de EFF y Mozilla con la ayuda de Cisco e IdenTrust , incluyendo el trabajo de científicos informáticos de la Universidad de Michigan en lo que se convertiría en Certbot. La autoridad de certificación Let's Encrypt, la primera en admitir ACME, se abrió al público en diciembre de 2015 utilizando el protocolo aún propietario conocido como 'ACMEv1'. Esta versión se entregó para su estandarización pública a un grupo de trabajo ACME recién creado del Grupo de Trabajo de Ingeniería de Internet bajo la Sociedad de Internet en febrero de 2015. [ 8 ] El estándar finalizado se publicó en marzo de 2019 como RFC 8555 bajo la autoría de Richard Barnes de Cisco, Jacob Hoffman-Andrews de EFF, Daniel McCarney de Let's Encrypt y James Kasten de la Universidad de Michigan, con contribuciones de instituciones educativas o de investigación pública y empresas de ciberseguridad. [ a ] ​​[ 6 ] El protocolo ACME continúa recibiendo extensiones publicadas hasta 2026. [ 8 ]

Función

El protocolo ACME funciona desde la perspectiva del servidor (CA) asignando a cada cliente una cuenta ACME, vinculada a una URI en el servidor. El cliente crea una cuenta consultando la URI del directorio del servidor, tras lo cual este responde con puntos finales de información adicionales y el acuerdo de términos de servicio de la CA. La cuenta ACME se crea una vez que el cliente acepta los términos, estableciendo el campo de respuesta correspondiente en verdadero.

El cliente obtiene entonces la preautorización del servidor, asegurando que el certificado que se emitirá cumpla con los requisitos del servidor, mediante el envío de un subconjunto de los campos del certificado. El servidor responde con una URL de "objeto de pedido" . Este paquete contiene una lista de los métodos de autorización compatibles con el servidor, que garantizan que el cliente posee el sujeto del certificado potencial. El cliente descarga un token de autorización de la(s) URL(s) indicadas en la respuesta y lo pone a disposición, por ejemplo, creando un registro DNS que lo contenga o abriendo un punto final HTTP que responda con él. Una vez que el token de autorización está disponible en la dirección del sujeto del certificado deseado, el cliente notifica al servidor que está preparado para la validación, la cual realiza el servidor al acceder al token de autorización.

Una vez completada la autorización, el cliente envía una solicitud de firma de certificado ( RFC 2986 ) que contiene el certificado que se va a firmar, lo que genera un objeto de orden actualizado con la decisión de la CA. Si la solicitud fue válida, la CA ha firmado el certificado del cliente y este puede descargarlo desde la URL proporcionada.

También existe funcionalidad para la revocación de certificados, la eliminación de cuentas y otras formas de autenticación. [ 9 ]

Implementaciones para clientes

El ISRG proporciona implementaciones de referencia gratuitas y de código abierto para ACME: certbot es una implementación basada en Python de software de gestión de certificados de servidor que utiliza el protocolo ACME, [ 10 ] [ 11 ] [ 12 ] y boulder es una implementación de autoridad de certificación , escrita en Go . [ 13 ] Las implementaciones de cliente están disponibles para Rust en los cratesacme-client y .instant_acme

Desde 2015 ha aparecido una gran variedad de opciones de cliente para todos los sistemas operativos. [ 14 ]

Los servidores web como Caddy , Traefik Proxy , [ 15 ] Nginx (a partir de agosto de 2025) y Apache HTTP Server [ 16 ] (2.4.30 y posteriores) tienen soporte integrado para adquirir automáticamente un certificado TLS utilizando el protocolo ACME. [ 17 ] [ 18 ]

Versiones de API

Versión 1 de la API

La especificación API v1 se publicó el 12 de abril de 2016. Admite la emisión de certificados para nombres de dominio completamente calificados, como example.como cluster.example.com, pero no comodines como *.example.com. Let's Encrypt desactivó la compatibilidad con API v1 el 1 de junio de 2021. [ 19 ]

Versión 2 de la API

La API v2 se lanzó el 13 de marzo de 2018 después de haber sido pospuesta varias veces. ACME v2 no es compatible con versiones anteriores de v1. La versión 2 admite dominios comodín, como *.example.com, lo que permite que muchos subdominios tengan TLS de confianza , por ejemplo https://cluster01.example.com, , https://cluster02.example.com, https://example.com, en redes privadas bajo un solo dominio usando un único certificado "comodín" compartido. [ 20 ] Un nuevo requisito importante en v2 es que las solicitudes de certificados comodín requieren la modificación de un registro TXT del Servicio de nombres de dominio , que verifica el control sobre el dominio.

Los cambios en el protocolo ACME v2 desde v1 incluyen: [ 21 ]

  • El flujo de autorización/emisión ha cambiado.
  • La autorización de solicitud de JWS ha cambiado.
  • El campo "recurso" de los cuerpos de las solicitudes JWS se reemplaza por un nuevo encabezado JWS: "url".
  • Cambio de nombre de los puntos finales/recursos del directorio
  • Cambio de nombre de URI a URL en los recursos del desafío
  • La creación de la cuenta y la aceptación de los Términos de Servicio se combinan en un solo paso. Anteriormente, estos pasos se realizaban por separado.
  • Se implementó un nuevo tipo de desafío, TLS-ALPN-01. Dos tipos de desafío anteriores, TLS-SNI-01 y TLS-SNI-02, se eliminaron debido a problemas de seguridad. [ 22 ] [ 23 ]

Estándares de extensión

Véase también

Referencias

  1. 1 2 Steven J. Vaughan-Nichols (9 de abril de 2015). "Asegurando la web de una vez por todas: El proyecto Let's Encrypt" . ZDNet .
  2. 1 2 sh. "ietf-wg-acme/acme-spec" . GitHub . Consultado el 5 de abril de 2017 .
  3. Chris Brook (18 de noviembre de 2014). "EFF y otras organizaciones planean facilitar el cifrado de la web en 2015" . ThreatPost.
  4. Barnes, R.; Hoffman-Andrews, J.; McCarney, D.; Kasten, J. (2019-03-12). Automatic Certificate Management Environment (ACME) . IETF . doi : 10.17487/RFC8555 . RFC 8555. Recuperado el 13 de marzo de 2019 .
  5. "Entorno de gestión de certificados automatizado (acme)" . IETF Datatracker . Consultado el 12 de marzo de 2019 .
  6. 1 2 3 Josh Aas; Richard Barnes; Benton Case; Zakir Durumeric; Peter Eckersley; Alan Flores-López; J. Alex Halderman; Jacob Hoffman-Andrews; James Kasten; Eric Rescorla; Seth Schoen; Brad Warren. "Let's Encrypt: una autoridad de certificación automatizada para cifrar toda la web" (PDF) . Biblioteca digital de la ACM . Asociación para la Maquinaria de Computación. doi : 10.1145/3319535.3363192 . Recuperado el 25 de febrero de 2026 .
  7. Zakir Durumeric; James Kasten; Michael Bailey; J. Alex Halderman (23 de octubre de 2013). «Análisis del ecosistema de certificados HTTPS». Actas de la conferencia de 2013 sobre medición de Internet . págs. 291–304 . doi : 10.1145/2504730.2504755 . ISBN  978-1-4503-1953-9.
  8. 1 2 "Historial del Grupo de Trabajo ACME" . datatracker.ietf.org . IETF . Consultado el 25 de febrero de 2026 .
  9. Barnes, Richard; Hoffman-Andrews, Jacob; McCarney, Daniel; Kasten, James (marzo de 2019). "Entorno de gestión automática de certificados (ACME)" . datatracker.ietf.org . IETF . Consultado el 26 de febrero de 2026 .
  10. "Certbot" . EFF . Consultado el 14 de agosto de 2016 .
  11. "certbot/certbot" . GitHub . Consultado el 2 de junio de 2016 .
  12. Edge, Jake (13 de mayo de 2016). "Anuncio de Certbot: el cliente de la EFF para Let's Encrypt" . LWN . Consultado el 2 de junio de 2016 .
  13. "letsencrypt/boulder" . GitHub . Consultado el 22 de junio de 2015 .
  14. "Implementaciones de cliente ACME - Let's Encrypt - Certificados SSL/TLS gratuitos" . letsencrypt.org . 20 de febrero de 2025.
  15. Warren, Brad (7 de marzo de 2024). "¿Deberían Caddy y Traefik reemplazar a Certbot?" . Electronic Frontier Foundation . Consultado el 16 de septiembre de 2025 .
  16. "mod_md - Servidor HTTP Apache Versión 2.4" . httpd.apache.org . Archivado del original el 25/09/2025 . Consultado el 07/10/2025 .
  17. "NGINX introduce soporte nativo para el protocolo ACME – Blog de la comunidad de NGINX" . 12 de agosto de 2025. Consultado el 14 de septiembre de 2025 .
  18. "Llega la compatibilidad nativa con ACME a NGINX" . Let's Encrypt . 11 de septiembre de 2025. Consultado el 14 de septiembre de 2025 .
  19. "Plan de fin de vida útil para ACMEv1 - Anuncios de API" . Soporte de la comunidad de Let's Encrypt . 5 de mayo de 2021. Consultado el 12 de junio de 2021 .
  20. "Punto final de la API ACME v2 disponible en enero de 2018 - Let's Encrypt - Certificados SSL/TLS gratuitos" . letsencrypt.org . 14 de junio de 2017.
  21. "Punto final de preparación para ACME v2" . Soporte de la comunidad de Let's Encrypt . 5 de enero de 2018.
  22. "Tipos de desafíos - Documentación de Let's Encrypt" . Let's Encrypt . 8 de diciembre de 2020. Consultado el 12 de mayo de 2021 .
  23. Barnes, R.; Hoffman-Andrews, J.; McCarney, D.; Kasten, J. (2019-03-12). Automatic Certificate Management Environment (ACME) . IETF . doi : 10.17487/RFC8555 . RFC 8555. Recuperado el 12 de mayo de 2021. Los valores "tls-sni-01" y "tls-sni-02" están reservados porque se usaban en versiones anteriores a la RFC de esta especificación para denotar métodos de validación que se eliminaron porque se descubrió que no eran seguros en algunos casos.
  1. SSLMate.com, el Instituto Francés de Investigación en Informática y Automatización, Hemio eV, DigiCert, Sectigo y la Universidad de Oxford contribuyeron al RFC 8555.
  • Barnes, Richard; Hoffman-Andrews, Jacob; Kasten, James (marzo de 2019). "Entorno de gestión automática de certificados (ACME)" . IETF.
  • Lista de clientes de ACME en Let's Encrypt
  • Lista de clientes ACME de uso común a través de acmeclients.com