
1. Qu'est-ce que le protocole ACME ? #
Le protocole ACME (RFC 8555) est un standard permettant d'automatiser les interactions entre une autorité de certification (CA) et les serveurs web.
Origine et Fonctionnement #
Développé par l'ISRG (Internet Security Research Group) pour le lancement de Let's Encrypt, ACME permet à un serveur de prouver qu'il contrôle un domaine afin d'obtenir un certificat sans intervention humaine. Cette preuve repose sur des 'défis' (challenges) :
- HTTP-01 : Placer un fichier spécifique sur le serveur web.
- DNS-01 : Créer un enregistrement TXT spécifique dans la zone DNS.
Les avantages majeurs #
- Gratuité : La plupart des autorités ACME (Let's Encrypt, ZeroSSL) offrent des certificats gratuits.
- Sécurité : Les certificats expirent tous les 90 jours, limitant l'impact en cas de compromission.
- Fiabilité : L'automatisation élimine le risque d'oubli de renouvellement (première cause d'indisponibilité HTTPS).
2. Automatisation avec Traefik #
Traefik est le champion de l'ACME grâce à son support natif sans outil tiers.
Configuration (traefik.yml) #
Traefik gère lui-même le stockage et le renouvellement via des CertificatesResolvers :
certificatesResolvers:
myresolver:
acme:
email: admin@votre-domaine.fr
storage: acme.json
httpChallenge:
entryPoint: web # Port 80 obligatoire pour le défiEnsuite, sur vos conteneurs, il suffit d'ajouter un label :traefik.http.routers.monapp.tls.certresolver=myresolver
3. Automatisation avec HAProxy #
HAProxy nécessite généralement un client externe (Certbot ou acme.sh) pour gérer le challenge.
Intégration avec Certbot #
La méthode recommandée consiste à dédier un backend au challenge ACME pour ne pas couper le trafic :
frontend http-in
bind *:80
acl is_acme path_beg /.well-known/acme-challenge/
use_backend acme_backend if is_acme
backend acme_backend
server certbot 127.0.0.1:8888Le renouvellement se fait via un script qui concatène le certificat et la clé privée dans un fichier .pem, format attendu par HAProxy.
4. Automatisation avec Nginx #
Nginx utilise massivement Certbot via un plugin dédié qui automatise la lecture et l'écriture de la configuration.
Commande de mise en place #
Sur la plupart des systèmes Linux, une seule commande suffit pour transformer un site HTTP en HTTPS :
sudo certbot --nginx -d mon-domaine.frCertbot va alors :
- Modifier votre
nginx.confpour ajouter les blocs SSL. - Gérer le challenge HTTP-01.
- Installer une tâche Cron pour renouveler le certificat automatiquement tous les 60 jours.
Conclusion #
Quel outil choisir ? #
Si vous travaillez dans un environnement cloud/conteneurs, Traefik offre l'expérience la plus fluide. Pour des infrastructures traditionnelles plus statiques, le couple Nginx + Certbot reste la référence mondiale par sa simplicité.


