Traefik : renouveler le certificat
Sur cette page
Dans une installation Docker avec Traefik comme proxy inverse (standard, voir Docker (Recommandé) →), la procédure varie selon que Traefik obtient lui-même le certificat auprès de Let’s Encrypt ou délivre un certificat statique émis par une autorité de certification.
Let’s Encrypt (standard)
Dans l’installation standard, Traefik obtient et renouvelle automatiquement le certificat Let’s Encrypt ; aucun remplacement manuel n’est nécessaire. Si le renouvellement échoue, les journaux du conteneur Traefik fournissent des indications (par exemple docker compose logs traefik dans le répertoire /opt/relution). Il convient alors de vérifier que l’enregistrement DNS de l’URL externe pointe vers le serveur et que le port 80 est accessible depuis Internet, car Traefik obtient le certificat via le challenge HTTP sur le port 80. Le port 443 doit également être accessible pour l’accès à Relution.
Traefik enregistre les certificats obtenus dans le fichier /opt/relution/certs/letsencrypt/acme.json (/letsencrypt/acme.json dans le conteneur).
Certificats statiques
La chaîne de certificats (server.pem) et la clé privée (server.key) d’un certificat acheté sont d’abord préparées comme décrit dans Renouveler un certificat acheté →.
Cela suppose que Traefik soit configuré pour les certificats statiques : le fichier de configuration relution.static_cert.yaml se trouve dans le répertoire /opt/relution/configs/traefik, et le fichier compose.yaml monte le répertoire ./certs/static dans le conteneur Traefik. Si Let’s Encrypt était utilisé jusqu’à présent, le passage s’effectue comme décrit sous Traefik - certificats statiques dans Docker (Recommandé) →.
Traefik lit les deux fichiers dans le répertoire /opt/relution/certs/static. Avant le remplacement, les fichiers existants sont sauvegardés afin de pouvoir les restaurer en cas de problème :
cd /opt/relution/certs/static
sudo cp server.pem server.pem.old
sudo cp server.key server.key.old
Le fichier server.pem est remplacé par le nouveau certificat, ainsi que server.key en cas de nouvelle paire de clés (nouvelle CSR). La clé privée ne doit être lisible que par root (sudo chmod 600 server.key). Traefik est ensuite redémarré dans le répertoire /opt/relution :
docker compose restart traefik
Tous les conteneurs peuvent également être arrêtés avec docker compose down puis redémarrés avec docker compose up -d ; Relution et la base de données sont alors aussi brièvement arrêtés, et Relution n’est pas accessible pendant ce temps.
Si Traefik ne délivre pas ensuite le nouveau certificat, les journaux du conteneur (docker compose logs traefik) en indiquent la cause, par exemple un fichier de certificat erroné ou une clé qui ne correspond pas. Dans ce cas, les fichiers sauvegardés server.pem.old et server.key.old peuvent être recopiés jusqu’à ce que l’erreur soit corrigée.
Pour finir, l’interface web de Relution est ouverte dans le navigateur et l’icône de cadenas dans la barre d’adresse permet de vérifier que le nouveau certificat est délivré avec la nouvelle date d’expiration. La délivrance de la chaîne complète peut en outre être vérifiée, par exemple, avec WhatsMyChainCert →.