Let's Encrypt et automatisation du protocole ACME
Automatisez l’émission et le renouvellement de certificats à l’aide du protocole ACME, de Certbot et d’autres clients.
Let's Encrypt et automatisation du protocole ACME est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Introduction à Let's Encrypt
Let's Encrypt est une autorité de certification gratuite, automatisée et ouverte, gérée par l'Internet Security Research Group (ISRG), lancée en bêta publique en décembre 2015. Elle a émis plus de 3 milliards de certificats et a considérablement accéléré l'adoption de HTTPS sur le Web en supprimant le coût et la complexité liés à l'obtention de certificats TLS approuvés publiquement.
Présentation du protocole ACME
Le protocole Automated Certificate Management Environment (ACME), normalisé par la RFC 8555 en 2019, définit comment les clients prouvent automatiquement qu'ils contrôlent un domaine et reçoivent des certificats des CA. ACME remplace les processus manuels de validation de domaine par un échange automatisé vérifié cryptographiquement, permettant d'automatiser la gestion du cycle de vie des certificats sans intervention manuelle.
Défi HTTP-01
Le défi HTTP-01 valide le contrôle d'un domaine en exigeant que le client ACME place un fichier de jeton spécifique à l'adresse "http://DOMAIN/.well-known/acme-challenge/TOKEN". La CA récupère cette URL pour vérifier le jeton. HTTP-01 est simple à mettre en œuvre, mais nécessite que le port 80 soit accessible et ne peut pas être utilisé pour les certificats génériques.
Défi DNS-01
Le défi DNS-01 valide le contrôle d'un domaine en exigeant que le client ACME crée un enregistrement TXT DNS à l'adresse "_acme-challenge.DOMAIN" avec une valeur spécifique. La CA interroge DNS pour vérifier l'enregistrement. DNS-01 est le seul type de défi prenant en charge l'émission de certificats génériques ("*.example.com") et fonctionne même lorsque les serveurs web sont protégés par des pare-feu.
Défi TLS-ALPN-01
Le défi TLS-ALPN-01 valide le contrôle d'un domaine au niveau de TLS à l'aide d'un identifiant de protocole ALPN personnalisé, "acme-tls/1". Le client ACME sert temporairement un certificat auto-signé contenant le jeton du défi dans une extension spéciale, sur le port 443. Ce défi fonctionne sans serveur web actif et prend en charge les environnements avec répartition de charge.
Client ACME de référence
Certbot est le client ACME de référence de l'Electronic Frontier Foundation pour Let's Encrypt. Il automatise l'intégralité du cycle de vie des certificats : validation du domaine, émission du certificat et renouvellement automatique. Certbot comprend des modules pour Apache et nginx qui configurent automatiquement les paramètres TLS. Installez-le avec "snap install --classic certbot" sur les distributions Linux modernes.
Clients ACME alternatifs
De nombreux clients ACME autres que Certbot existent pour répondre à différents besoins. acme.sh est un client ACME constitué exclusivement d'un script shell, largement utilisé dans les environnements légers. Le serveur web Caddy intègre ACME et renouvelle automatiquement les certificats. Traefik, utilisé dans les environnements de conteneurs, gère ACME via sa configuration certificatesResolvers pour les charges de travail conteneurisées.
Automatisation du renouvellement des certificats
Les certificats de Let's Encrypt ont par conception une période de validité de 90 jours, ce qui encourage l'automatisation et réduit la durée d'exposition des clés privées compromises. Certbot installe un minuteur systemd ou une tâche cron qui exécute "certbot renew" deux fois par jour et renouvelle tout certificat arrivant à expiration dans les 30 jours. Le renouvellement manuel est une mauvaise pratique qui entraîne des interruptions de service.
Limites de débit de Let's Encrypt
Let's Encrypt applique des limites de débit pour prévenir les abus. Les principales limites sont de 50 certificats par domaine enregistré et par semaine, ainsi que de 5 certificats identiques par semaine. Les tentatives de validation échouées sont également limitées à 5 par nom d'hôte et par heure. Pendant le développement, l'environnement de préproduction de Let's Encrypt permet d'émettre un nombre illimité de certificats auprès d'une CA de test qui n'est pas approuvée publiquement.
Certificats multidomaines et génériques
Un seul certificat ACME peut couvrir plusieurs domaines (noms alternatifs du sujet). "certbot --domains example.com,www.example.com,api.example.com" émet un certificat comportant trois SAN. Les certificats génériques ("*.example.com") nécessitent une validation DNS-01 et couvrent tous les sous-domaines d'un seul niveau. Les certificats génériques ne couvrent pas le domaine racine (example.com) lui-même ; il faut donc ajouter un SAN.
ACME pour une PKI interne
Le protocole ACME ne se limite pas à Let's Encrypt. Des CA internes comme Step-CA (smallstep), EJBCA et HashiCorp Vault peuvent exposer des points de terminaison ACME pour automatiser les certificats internes. Cela permet d'appliquer à l'infrastructure mTLS interne et aux services privés la même gestion automatisée du cycle de vie des certificats que celle utilisée pour les services accessibles publiquement.
Vérification des défis ACME
Quel type de défi ACME est requis pour émettre un certificat générique tel que "*.example.com" ?
Récapitulatif de la leçon : Let's Encrypt et ACME
Let's Encrypt fournit des certificats gratuits via le protocole ACME (RFC 8555). Les défis HTTP-01 fonctionnent pour les certificats non génériques sur le port 80. DNS-01 permet les certificats génériques en prouvant le contrôle de la zone DNS. TLS-ALPN-01 fonctionne sans serveur web. Certbot et acme.sh automatisent l'intégralité du cycle de vie. Les certificats valables 90 jours nécessitent une automatisation. Les limites de débit imposent d'utiliser l'environnement de préproduction pendant les tests.
Apprends Cryptology Academy avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 67
- Leçons
- 261
Questions Fréquemment Posées
La leçon « Let's Encrypt et automatisation du protocole ACME » est-elle gratuite ?
Oui — le texte complet de « Let's Encrypt et automatisation du protocole ACME » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Let's Encrypt et automatisation du protocole ACME » ?
Automatisez l’émission et le renouvellement de certificats à l’aide du protocole ACME, de Certbot et d’autres clients. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Let's Encrypt et automatisation du protocole ACME » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Les commandes essentielles d’OpenSSL
- Créer et gérer des chaînes de certificats
- Agrafage OCSP et transparence des certificats
- Let's Encrypt et automatisation du protocole ACME