SSLmentor

Certificats TLS/SSL de qualité pour sites Web et projets Internet.

ACME

ACME

ACME

Le protocole ACME (Automatic Certificate Management Environment) est une norme internet ouverte qui permet l'émission, le renouvellement et la révocation entièrement automatisés des certificats SSL. Grâce à ACME, les serveurs web peuvent demander eux-mêmes des certificats et les renouveler automatiquement sans intervention manuelle de l'administrateur. Les implémentations de clients ACME automatisent et simplifient considérablement la gestion des certificats à une époque où de nouvelles normes réduisent progressivement la validité des certificats SSL/TLS à un maximum de 47 jours d'ici 2029.

Qu'est-ce que le protocole ACME ?

ACME est un protocole défini dans la RFC 8555 (publiée en 2019), qui normalise la communication entre un client (serveur web ou outil de gestion de certificats) et une autorité de certification (CA). Il a été initialement conçu et popularisé par l'autorité de certification Let's Encrypt, qui émet des certificats DV gratuits via ACME.

Le protocole fonctionne sur le principe défi – réponse : le client prouve à l'autorité de certification (CA) qu'il contrôle réellement le domaine pour lequel il demande un certificat. Après une vérification réussie, la CA émet automatiquement le certificat. L'ensemble du processus prend très peu de temps.

L'abréviation ACME signifie Automatic Certificate Management Environment.

Comment fonctionne ACME ?

La communication entre le client ACME et l'autorité de certification (CA) s'effectue exclusivement via une API REST HTTP. Le client et la CA échangent des messages au format JSON. L'ensemble du processus peut se résumer par les étapes suivantes.

  • Activation du compte – le client ACME se connecte à la CA à l'aide des identifiants EAB (external account binding). Il envoie le Key identifier (KID) et la clé HMAC.
  • Demande de certificat (Order) – le client envoie à la CA la liste des domaines pour lesquels il demande un certificat. La CA renvoie une liste de défis que le client doit accomplir pour chaque domaine.
  • Réalisation du défi (Challenge) – le client choisit l'un des types de défis proposés (HTTP-01, DNS-01, TLS-ALPN-01) et effectue l'action requise – il place un jeton sur le serveur ou définit un enregistrement DNS.
  • Vérification par la CA – la CA vérifie automatiquement si le défi a été accompli (elle visite l'URL, vérifie l'enregistrement DNS, etc.). Une vérification réussie confirme l'autorisation du domaine.
  • Émission du certificat – le client envoie une demande de certificat (CSR). La CA signe le certificat et le renvoie au client au format PEM.
  • Renouvellement automatique – le client ACME configure un renouvellement régulier dans sa configuration. Le certificat est généralement renouvelé suffisamment à l'avance avant son expiration afin d'éviter toute interruption du HTTPS.

Types de défis ACME

Pour que l'autorité de certification (CA) puisse vérifier que le demandeur contrôle réellement le domaine, le protocole ACME propose trois types de défis normalisés :

HTTP-01

Le client ACME place un fichier spécial (jeton) sur le serveur web dans le répertoire /.well-known/acme-challenge/. La CA vérifie ensuite sa disponibilité via HTTP sur le port 80. C'est la méthode de vérification la plus couramment utilisée.

Limitations : ne fonctionne pas pour les certificats WildCard. Le domaine doit être accessible publiquement sur le port 80.

DNS-01

Le client crée un enregistrement TXT spécial dans le DNS du domaine sous la forme _acme-challenge.domenaxyz.cz avec un jeton unique de la CA. La CA vérifie l'enregistrement via DNS. Cette méthode de vérification permet d'obtenir un certificat WildCard.

Limitations : nécessite l'accès aux enregistrements DNS du domaine. Peut être plus lente en raison de la propagation des modifications DNS.

TLS-ALPN-01

La vérification s'effectue via TLS sur le port 443 à l'aide de l'extension ALPN (Application-Layer Protocol Negotiation). Le client met temporairement à disposition un certificat spécial contenant le jeton ACME.

Limitations : peut être compliquée pour certains environnements d'hébergement.

Clients ACME – aperçu des outils

Il existe un large éventail d'outils prêts à l'emploi pour travailler avec le protocole ACME.

Certbot

Le client ACME le plus populaire, développé par EFF.org. Intégration automatique avec Apache et Nginx. Prise en charge de Linux et macOS. Certbot est un outil largement utilisé et bien documenté qui propose des commandes simples pour obtenir et renouveler des certificats. Il offre également une prise en charge étendue de divers serveurs web et environnements d'hébergement.

acme.sh

Un client ACME minimaliste écrit en shell, prenant en charge plus de 150 fournisseurs DNS. Linux, macOS, FreeBSD. acme.sh met l'accent sur la simplicité et une large compatibilité.

win-acme

Un client ACME pour Windows avec intégration IIS. Prend en charge à la fois l'interface graphique et la ligne de commande. win-acme est idéal pour gérer les certificats sur les serveurs Windows, en particulier avec IIS.

Lego

Un client ACME écrit en Go. Adapté à l'intégration personnalisée et aux scripts. Lego est un client ACME flexible qui peut être facilement intégré à des systèmes et des scripts personnalisés grâce à son implémentation dans le langage Go.

Retour à l'aide
Vous avez trouvé une erreur ou vous ne comprenez pas quelque chose ? Écrivez-nous !

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