Publié le
11 février 2024
Introduction
Le protocole ACME (Environnement automatisé de gestion des certificats) est un protocole réseau conçu pour automatiser le processus de validation de domaine et la délivrance de certificats X.509. Le protocole a été initialement conçu par le Internet Security Research Group (ISRG) pour leur propre service de délivrance de certificats : Let's Encrypt. Le protocole est maintenant publié comme norme Internet dans RFC 8555. L'ISRG lui‑même est soutenu par des entreprises telles que Cisco, Google, Mozilla ou Facebook.
ACME v1 a été publié le 12 avril 2016 mais il est maintenant obsolète.
La dernière version actuellement prise en charge, ACME v2, a été publiée le March 13, 2018.
La principale nouvelle fonctionnalité d'ACME v2 est la prise en charge des domaines génériques. Elle n'est pas compatible avec les versions antérieures d'ACME v1.
Vue d'ensemble
Les certificats SSL sont généralement utilisés sur Internet pour sécuriser les communications vers un site web. Ils certifient l'identité du site web en se basant sur son nom de domaine DNS. Ces certificats sont délivrés par des autorités de certification publiques en utilisant trois stratégies de validation :
Validation de domaine, où l'administrateur du site doit prouver qu'il contrôle le domaine DNS
Validation d'organisation, où l'administrateur du site devra prouver qu'il représente l'organisation détenant le domaine DNS
Validation étendue, qui ajoute des contrôles supplémentaires en plus de la validation d'organisation
Essentiellement, les étapes pour obtenir un certificat en utilisant le processus de validation de domaine sont les suivantes :
Générez une requête de signature de certificat PKCS#10;
Téléversez la CSR sur la page web de la CA ;
Attester la propriété du domaine inclus dans le CSR en utilisant l'une des méthodes suivantes :
Ajoutez un défi fourni par l'Autorité de certification à un endroit spécifique sur le serveur web ;
Ajoutez un défi fourni par l'Autorité de Certification dans un enregistrement DNS correspondant au domaine demandé;
Recevez un défi fourni par l'Autorité de Certification à une adresse e-mail et répondez-y sur la page web de l'Autorité de Certification.
Recevez et installez le certificat généré.
ACME vise à automatiser ces mécanismes utilisés dans le processus de validation de domaine en fournissant un cadre qui automatise la procédure de vérification d'identité et la délivrance du certificat.
Vous souhaitez mettre en œuvre ces pratiques PKI ?
Obtenez des conseils d'experts pour mettre en œuvre des solutions PKI sécurisées pour votre organisation.
Obtenir de l'aide d'expertLes communications entre un serveur ACME et un client ACME sont basées sur JavaScript Object Notation (JSON) messages, sécurisés avec TLS et JSON Web Signature (JWS).
L'émission d'un certificat via le protocole ACME est très similaire à l'émission d'un certificat via le processus habituel DV des CA :
Création d'un compte;
Demande d'un certificat ;
Prouver la propriété du domaine à l'aide d'un défi.
Voici en détail le processus de demande d'un certificat en utilisant le protocole ACME :
Le client doit créer un compte, envoyer une demande de signature, répondre à un défi envoyé par le serveur ACME, puis envoyer le CSR pour signature. Dans la plupart des cas, toutes ces opérations sont entièrement automatisées.
À propos du processus de validation ACME
ACME spécifie 3 méthodes de validation différentes, selon la RFC 8555 :
pré‑validation, où la validation a lieu avant l'inscription ACME réelle, par d'autres moyens que ACME
validation http-01, où le défi de validation est servi par le client en utilisant HTTP
validation dns-01, où le défi de validation est rendu disponible via DNS
Une quatrième méthode de validation est également couramment utilisée. Connue sous le nom tls‑alpn‑01, elle repose sur l'extension TLS ALPN pour délivrer un certificat auto‑signé contenant le défi.
Ces 4 méthodes de validation ont toutes des avantages et des inconvénients, car il n'est pas toujours possible d'utiliser chacune d'elles :
Les ports HTTP peuvent être fermés ou redirigés de manière agressive vers HTTPS
Les serveurs DNS peuvent être bunkerisés et ne sont pas facilement utilisables par les clients ACME
L'extension TLS ALPN n'est pas prise en charge par tous les serveurs
Très peu de clients prennent réellement en charge la méthode de pré-validation, car Let's Encrypt ne la supporte pas
Par conséquent, lors de la conception d'une solution d'automatisation PKI basée sur ACME, le choix et l'architecture utilisés pour la validation sont un point clé.
Clients ACME
L'autre point clé principal est le choix des clients ACME. Certains produits ou solutions incluent déjà un client ACME, rendant le choix évident.
Pour les autres cas, voici une liste non exhaustive de clients ACME :