SSLmentor

Kwaliteit TLS/SSL-certificaten voor websites en internetprojecten.

ACME

ACME

ACME

Het ACME-protocol (Automatic Certificate Management Environment) is een open internetstandaard die volledig geautomatiseerde uitgifte, verlenging en intrekking van SSL-certificaten mogelijk maakt. Dankzij ACME kunnen webservers zelf certificaten aanvragen en deze automatisch verlengen zonder handmatige tussenkomst van een beheerder. ACME-clientimplementaties automatiseren en vereenvoudigen het beheer van certificaten aanzienlijk, in een tijd waarin nieuwe standaarden de geldigheid van SSL/TLS-certificaten geleidelijk verkorten tot maximaal 47 dagen tegen 2029.

Wat is het ACME-protocol?

ACME is een protocol dat is gedefinieerd in RFC 8555 (gepubliceerd in 2019), dat de communicatie tussen een client (webserver of tool voor certificaatbeheer) en een certificeringsautoriteit (CA) standaardiseert. Het werd oorspronkelijk ontworpen en gepopulariseerd door de certificeringsautoriteit Let's Encrypt, die gratis DV-certificaten uitgeeft via ACME.

Het protocol werkt volgens een challenge – response-principe: de client bewijst aan de certificeringsautoriteit (CA) dat hij daadwerkelijk het domein beheert waarvoor hij een certificaat aanvraagt. Na succesvolle verificatie geeft de CA het certificaat automatisch uit. Het hele proces neemt zeer weinig tijd in beslag.

De afkorting ACME staat voor Automatic Certificate Management Environment.

Hoe werkt ACME?

De communicatie tussen de ACME-client en de certificeringsautoriteit (CA) verloopt uitsluitend via de HTTP REST API. De client en de CA wisselen berichten uit in JSON-formaat. Het hele proces kan worden samengevat in de volgende stappen.

  • Accountactivatie – de ACME-client maakt verbinding met de CA met behulp van EAB-gegevens (external account binding). Stuurt de Key identifier (KID) en de HMAC-sleutel.
  • Certificaataanvraag (Order) – de client stuurt de CA een lijst met domeinen waarvoor hij een certificaat aanvraagt. De CA retourneert een lijst met challenges die de client voor elk domein moet voltooien.
  • De challenge voltooien (Challenge) – de client kiest een van de aangeboden challengetypes (HTTP-01, DNS-01, TLS-ALPN-01) en voert de vereiste actie uit – plaatst een token op de server of stelt een DNS-record in.
  • Verificatie door de CA – de CA verifieert automatisch of de challenge is voltooid (bezoekt de URL, controleert het DNS-record, enz.). Een succesvolle verificatie bevestigt de domeinautorisatie.
  • Uitgifte van het certificaat – de client stuurt een certificaataanvraag (CSR). De CA ondertekent het certificaat en stuurt het in PEM-formaat terug naar de client.
  • Automatische verlenging – de ACME-client stelt in zijn configuratie een regelmatige verlenging in. Het certificaat wordt doorgaans ruim voor het verlopen verlengd om HTTPS-downtime te voorkomen.

Soorten ACME-challenges

Om de certificeringsautoriteit (CA) te laten verifiëren dat de aanvrager daadwerkelijk het domein beheert, biedt het ACME-protocol drie gestandaardiseerde challengetypes:

HTTP-01

De ACME-client plaatst een speciaal bestand (token) op de webserver in de map /.well-known/acme-challenge/. De CA controleert vervolgens de beschikbaarheid ervan via HTTP op poort 80. Dit is de meest gebruikte verificatiemethode.

Beperkingen: werkt niet voor WildCard-certificaten. Het domein moet openbaar bereikbaar zijn op poort 80.

DNS-01

De client maakt een speciaal TXT-record aan in de DNS van het domein in de vorm _acme-challenge.domenaxyz.cz met een uniek token van de CA. De CA verifieert het record via DNS. Deze verificatiemethode maakt het mogelijk om een WildCard-certificaat te verkrijgen.

Beperkingen: vereist toegang tot de DNS-records van het domein. Kan trager zijn door de propagatie van DNS-wijzigingen.

TLS-ALPN-01

De verificatie verloopt via TLS op poort 443 met behulp van de ALPN-extensie (Application-Layer Protocol Negotiation). De client stelt tijdelijk een speciaal certificaat met het ACME-token beschikbaar.

Beperkingen: kan ingewikkeld zijn voor sommige hostingomgevingen.

ACME-clients – overzicht van tools

Er is een breed scala aan kant-en-klare tools voor het werken met het ACME-protocol.

Certbot

De populairste ACME-client van EFF.org. Automatische integratie met Apache en Nginx. Ondersteuning voor Linux en macOS. Certbot is een veelgebruikte en goed gedocumenteerde tool die eenvoudige commando's biedt voor het verkrijgen en verlengen van certificaten. Het heeft ook uitgebreide ondersteuning voor diverse webservers en hostingomgevingen.

acme.sh

Een minimalistische ACME-client geschreven in shell met ondersteuning voor meer dan 150 DNS-providers. Linux, macOS, FreeBSD. acme.sh richt zich op eenvoud en brede compatibiliteit.

win-acme

Een ACME-client voor Windows met IIS-integratie. Ondersteunt zowel een GUI als de opdrachtregel. win-acme is ideaal voor het beheren van certificaten op Windows-servers, vooral met IIS.

Lego

Een ACME-client geschreven in Go. Geschikt voor eigen integratie en scripting. Lego is een flexibele ACME-client die dankzij de implementatie in de taal Go eenvoudig kan worden geïntegreerd in eigen systemen en scripts.

Terug naar Help
Een fout gevonden of iets niet begrepen? Schrijf ons!

CA Sectigo
CA RapidSSL
CA Thawte
CA GeoTrust
CA DigiCert
CA Certum