Publié le : 13/12/2024 à 11:00 Mis à jour le : 14/06/2026 à 22:35 Vues : 526

Comprendre le protocole ACME, ses avantages et comment configurer le renouvellement automatique des certificats avec Traefik, HAProxy et Nginx.

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éfi

Ensuite, 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:8888

Le 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.fr

Certbot va alors :

  1. Modifier votre nginx.conf pour ajouter les blocs SSL.
  2. Gérer le challenge HTTP-01.
  3. 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é.

Lien copié dans le presse-papiers !