Der Ablauf besteht aus HTTPS-Anfragen, die mit einem Kontoschlüssel als JWS signiert sind: Konto anlegen, eine Order mit den gewünschten Identifiern einreichen, pro Autorisierung eine Challenge erfüllen (http-01, dns-01 oder tls-alpn-01), einen CSR an die Finalize-URL der Order senden und die Zertifikatskette herunterladen. Jede Anfrage trägt einen frischen Wert Replay-Nonce und ist im geschützten Header an ihre URL gebunden.
Die Antworten auf Challenges werden aus einer Schlüsselautorisierung (Key Authorization) abgeleitet, token ‖ "." ‖ base64url(JWK thumbprint of the account key) (RFC 8555 §8.1), sodass ein anderes Konto sie nicht wiederverwenden kann. Erweiterungen: tls-alpn-01 (RFC 8737), IP-Identifier (RFC 8738), ACME Renewal Information (RFC 9773) und Zertifikatsprofile wie classic, tlsserver und shortlived von Let's Encrypt.
Zu den Clients gehören Certbot, lego, acme.sh, Caddy und cert-manager; ACME bieten unter anderem Let's Encrypt, ZeroSSL, Google Trust Services, Sectigo, DigiCert und SSL.com an, und auch private CAs wie step-ca und Vault sprechen das Protokoll. Da die Laufzeiten auf 47 Tage zusteuern, ist ACME für öffentliches TLS faktisch Pflicht.