Publié le
12 février 2024
Introduction
Le protocole ACME (Automated Certificate Management Environment) 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 l'Internet Security Research Group (ISRG) pour son propre service de délivrance de certificats : Let's Encrypt. Il est désormais publié comme standard Internet dans la RFC 8555. L'ISRG est lui-même soutenu par des entreprises telles que Cisco, Google, Mozilla ou Facebook.
ACME v1 a été publié le 12 avril 2016, mais est désormais obsolète.
La version la plus récente et actuellement prise en charge, ACME v2, a été publiée le 13 mars 2018.
La principale nouveauté d'ACME v2 est la prise en charge des domaines en wildcard. Elle n'est pas rétrocompatible avec ACME v1.
Vue d'ensemble
Les certificats SSL sont utilisés sur Internet principalement pour sécuriser les communications avec un site web. Ils attestent de l'identité du site web sur la base de son nom de domaine DNS. Ces certificats sont émis par des autorités de certification publiques selon trois stratégies de validation :
Domain Validation : l'administrateur du site web doit prouver qu'il a le contrôle du domaine DNS
Organization Validation : l'administrateur du site web doit prouver qu'il représente l'organisation détentrice du domaine DNS
Extended Validation : ajoute des vérifications supplémentaires en plus de l'Organization Validation
Pour l'essentiel, les étapes pour obtenir un certificat par Domain Validation sont les suivantes :
Générer une demande de signature de certificat PKCS#10 ;
Téléverser le CSR sur la page web d'une AC ;
Attester de la propriété du domaine inclus dans le CSR en utilisant l'une des méthodes suivantes :
Ajouter un challenge fourni par l'AC à un emplacement spécifique du serveur web ;
Ajouter un challenge fourni par l'AC dans un enregistrement DNS correspondant au domaine demandé ;
Recevoir un challenge envoyé par l'AC sur une adresse e-mail et y répondre sur la page web de l'AC.
Recevoir et installer le certificat généré.
ACME vise à automatiser ces mécanismes utilisés dans le processus de Domain Validation en fournissant un cadre qui automatise la procédure de vérification d'identité et la délivrance du certificat.
Envie de mettre en pratique ces bonnes pratiques PKI ?
Bénéficiez des conseils de nos experts pour déployer des solutions PKI sécurisées au sein de votre organisation.
Demander de l'aideLes communications entre un serveur ACME et un client ACME reposent sur des messages JavaScript Object Notation (JSON), sécurisés à l'aide de TLS et de JSON Web Signature (JWS).
L'émission d'un certificat via le protocole ACME est très proche de celle d'un certificat via le processus DV habituel des AC :
Création d'un compte ;
Demande d'un certificat ;
Preuve de la propriété du domaine au moyen d'un challenge.
Voici en détail le processus de demande d'un certificat via le protocole ACME :
Le client doit créer un compte, envoyer une demande de signature, répondre à un challenge envoyé par le serveur ACME, puis transmettre le CSR pour signature. Dans la plupart des cas, l'ensemble de ces opérations est entièrement automatisé.
À propos du processus de validation ACME
ACME définit 3 méthodes de validation différentes, conformément à la RFC 8555 :
pre-validation : la validation a lieu avant l'enrôlement ACME proprement dit, par d'autres moyens qu'ACME
http-01 : le challenge de validation est servi par le client via HTTP
dns-01 : le challenge de validation est rendu disponible via DNS
Une quatrième méthode de validation est également couramment utilisée. Connue sous le nom de tls-alpn-01, elle s'appuie sur l'extension TLS ALPN pour délivrer un certificat auto-signé contenant le challenge.
Ces 4 méthodes de validation présentent toutes des avantages et des inconvénients, car il n'est pas toujours possible de les utiliser :
Les ports HTTP peuvent être fermés ou agressivement redirigés vers HTTPS
Les serveurs DNS peuvent être verrouillés et inutilisables en l'état 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 pre-validation, car Let's Encrypt ne la prend pas en charge
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é est le choix des clients ACME. Certains produits ou solutions incluent déjà un client ACME, ce qui simplifie la décision.
Pour les autres cas, voici une liste non exhaustive de clients ACME :