# Entorn de gestió automàtica de certificats

El protocol ACME (Automatic Certificate Management Environment) és un protocol de comunicacions per automatitzar les interaccions entre les autoritats de certificació i els servidors dels seus usuaris, permetent el desplegament automatitzat d'infraestructura de clau pública a molt baix cost. Va ser dissenyat per Internet Security Research Group (ISRG) per al seu servei Let's Encrypt. El protocol, basat en passar missatges amb format JSON per HTTPS, s'ha publicat com a estàndard d'Internet a RFC 8555 pel seu propi grup de treball de l'IETF.

## Implementacions de client

L'ISRG proporciona implementacions de referència gratuïtes i de codi obert per a ACME: certbot és una implementació basada en Python de programari de gestió de certificats de servidor que utilitza el protocol ACME, i boulder és una implementació d'autoritat de certificació, escrita a Go..
Des del 2015 ha aparegut una gran varietat d'opcions de client per a tots els sistemes operatius.

## Versions de l'API
### API versió 1

L'especificació de l'API v1 es va publicar el 12 d'abril de 2016. Admet l'emissió de certificats per a noms de domini totalment qualificats, com ara example.com o cluster.example.com, però no comdins com *.example.com. Let's Encrypt va desactivar la compatibilitat amb l'API v1 l'1 de juny de 2021.

### API versió 2

L'API v2 es va llançar el 13 de març de 2018 després d'haver rebut diverses vegades. ACME v2 no és retrocompatible amb v1. La versió 2 admet dominis comodí, com ara *.example.com, la qual cosa permet que molts subdominis tinguin TLS de confiança, per exemple {{format ref}} https://cluster01.example.com, {{format ref}} https://cluster02.example.com, {{format ref}} https://example.com, en xarxes privades sota un únic domini mitjançant un únic certificat "comodí" compartit. Un requisit important nou a la v2 és que les sol·licituds de certificats de comodí requereixen la modificació d'un registre TXT del servei de noms de domini, verificant el control sobre el domini.
Els canvis al protocol ACME v2 des de la v1 inclouen:
* El flux d'autorització/emissió ha canviat.
* L'autorització de sol·licitud JWS ha canviat.
* El camp "recurs" dels cossos de sol·licitud JWS es substitueix per una nova capçalera JWS: "url".
* Canvi de nom del punt final/recurs del directori.
* URI → Canvi de nom d'URL als recursos de desafiament.
* La creació del compte i l'acord de ToS es combinen en un sol pas. Abans, aquests eren dos passos.
* Es va implementar un nou tipus de repte, TLS-ALPN-01. Dos tipus de reptes anteriors, TLS-SNI-01 i TLS-SNI-02, es van eliminar per problemes de seguretat.

## Referències

* 1 2 Steven J. Vaughan-Nichols. «Securing the web once and for all: The Let's Encrypt Project» (en anglès). ZDNet, 09-04-2015.
* ↑ «ietf-wg-acme/acme-spec» (en anglès). GitHub. [Consulta: 5 abril 2017].
* ↑ «ietf-wg-acme/acme-spec» (en anglès). GitHub. [Consulta: 5 abril 2017].
* ↑ Chris Brook. «EFF, Others Plan to Make Encrypting the Web Easier in 2015» (en anglès). ThreatPost, 18-11-2014.
* ↑ «Automated Certificate Management Environment (acme)» (en anglès). IETF Datatracker. [Consulta: 12 març 2019].
* ↑ «Certbot» (en anglès). EFF. [Consulta: 14 agost 2016].
* ↑ «certbot/certbot» (en anglès). GitHub. [Consulta: 2 juny 2016].
* ↑ «Announcing Certbot: EFF's Client for Let's Encrypt» (en anglès). LWN, 13-05-2016. [Consulta: 2 juny 2016].
* ↑ «letsencrypt/boulder» (en anglès). GitHub. [Consulta: 22 juny 2015].
* ↑ «ACME Client Implementations - Let's Encrypt - Free SSL/TLS Certificates» (en anglès). letsencrypt.org.
* ↑ «End of Life Plan for ACMEv1 - API Announcements» (en anglès). Let's Encrypt Community Support, 05-05-2021. [Consulta: 12 juny 2021].
* ↑ «ACME v2 API Endpoint Coming January 2018 - Let's Encrypt - Free SSL/TLS Certificates» (en anglès). letsencrypt.org.
* ↑ «Staging endpoint for ACME v2» (en anglès). Let's Encrypt Community Support, 05-01-2018.