Fundamentals

What Is ACME Protocol?

ACME (Automatic Certificate Management Environment) is a standardized protocol for automating certificate issuance, renewal, and revocation between a client (on your server) and a certificate authority. It was developed alongside Let's Encrypt and later published as an open IETF standard (RFC 8555), which means it's not proprietary to any one CA.

What it automates

  1. Domain ownership verification — proving you control the domain, via an HTTP challenge, DNS record, or similar
  2. Certificate issuance once verification succeeds
  3. Renewal before expiry, without manual intervention
  4. Revocation, if a certificate needs to be invalidated early

Common ACME clients

Certbot is the most widely used ACME client, but many others exist (acme.sh, lego, and built-in support in tools like Caddy and most hosting control panels). Because ACME is an open standard, several other CAs beyond Let's Encrypt — including some paid ones — now support it too, so the automation benefit isn't exclusive to free certificates anymore.

The specific steps ACME automates end to end

ACME handles domain validation, certificate issuance once validation passes, renewal ahead of expiry, and revocation if a certificate needs to be invalidated early — the entire lifecycle a manual certificate process would otherwise require a human to manage at each step.

Why its status as an open standard mattered beyond Let's Encrypt

Once ACME became a formal, open IETF standard rather than a Let's Encrypt-specific tool, other certificate authorities, including some paid ones, began supporting it too — meaning the automation benefit originally associated specifically with Let's Encrypt is now available more broadly across the CA industry, not locked to one provider.

What a typical ACME client actually does behind the scenes

An ACME client like Certbot handles requesting a challenge from the CA, completing that challenge (placing a file, or adding a DNS record), submitting proof back to the CA, receiving the issued certificate, and installing it into your server's configuration, all without any manual, step-by-step intervention from you.

The specific challenge types ACME supports beyond HTTP-01

Beyond the common HTTP-01 challenge, placing a file at a specific URL, ACME also supports DNS-01, adding a specific DNS TXT record, and TLS-ALPN-01, responding to a specially crafted TLS connection — different challenge types suit different situations, particularly when a domain isn't reachable over plain HTTP or when wildcard coverage is needed.

Why DNS-01 challenges specifically enable wildcard certificate automation

Because a wildcard certificate covers an unbounded set of possible subdomains, there's no single HTTP path that could prove control over all of them — DNS-01 validation, proving control via a DNS record at the domain level, is the only ACME challenge type that can satisfy a wildcard certificate's validation requirement.

Why understanding this protocol pays off even if you never write your own client

You don't need to understand ACME's internals to benefit from it, Certbot and similar tools handle the details, but knowing what's actually happening underneath makes troubleshooting a failed renewal considerably less mysterious when something eventually does go wrong.

What a minimal, complete ACME transaction actually involves under the hood

A complete ACME transaction involves the client requesting an order, receiving a challenge, completing that challenge, notifying the CA it's ready for validation, the CA verifying, and finally the client downloading the issued certificate — a defined, multi-step exchange entirely automated and typically completing within seconds.

A closing thought

A quick closing thought: ACME is a good example of how a well-designed technical standard can quietly transform an entire industry's practices without most people ever needing to understand its internal mechanics directly.