3.6 KiB
3.6 KiB
Configuration des certificats Let's Encrypt pour zapwall.fr
Date
2025-12-28
Problème
Le site https://zapwall.fr/ utilisait des certificats auto-signés, ce qui provoquait des avertissements de sécurité dans les navigateurs.
Solution
Configuration de certificats Let's Encrypt valides via certbot snap.
Motivations
- Éliminer les avertissements de sécurité dans les navigateurs
- Obtenir des certificats SSL valides et reconnus
- Utiliser certbot snap pour éviter le bug avec certbot et Python 3.11
Root causes
- Certificats auto-signés utilisés initialement
- Certbot classique présentait un bug
AttributeError: can't set attributeavec Python 3.11 - Solution : utiliser certbot via snap qui utilise son propre environnement Python
Correctifs
- Installation de certbot via snap :
sudo snap install certbot --classic - Obtention des certificats en mode standalone (nginx arrêté) :
sudo certbot certonly --standalone -d zapwall.fr - Copie des certificats dans le volume monté Docker pour nginx
- Mise à jour de la configuration nginx pour utiliser les certificats Let's Encrypt
Modifications
- Certificats obtenus :
/etc/letsencrypt/live/zapwall.fr/(sur l'hôte) - Volume monté :
/home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/certbot/conf-test/→/etc/letsencrypt(dans le conteneur, en lecture seule) - Configuration nginx :
ssl_certificate /etc/letsencrypt/live/zapwall.fr/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/zapwall.fr/privkey.pem;
Modalités de déploiement
- Installer snap si nécessaire :
sudo apt-get install -y snapd - Installer certbot via snap :
sudo snap install certbot --classic - Arrêter nginx :
sudo docker stop lecoffre_nginx_test - Obtenir les certificats :
sudo certbot certonly --standalone -d zapwall.fr --non-interactive --agree-tos --email admin@zapwall.fr - Copier les certificats dans le volume monté :
- Créer la structure :
sudo mkdir -p /home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/certbot/conf-test/{live,archive}/zapwall.fr - Copier les fichiers :
sudo cp /etc/letsencrypt/archive/zapwall.fr/* /home/debian/sites/test-lecoffreio.4nkweb.com/deploy/nginx/certbot/conf-test/archive/zapwall.fr/ - Créer les liens symboliques dans
live/zapwall.fr/
- Créer la structure :
- Redémarrer nginx :
sudo docker start lecoffre_nginx_test - Mettre à jour la configuration nginx pour pointer vers les certificats Let's Encrypt
- Recharger nginx :
sudo docker exec lecoffre_nginx_test nginx -s reload
Modalités d'analyse
Pour vérifier l'état des certificats :
- Vérifier les certificats sur l'hôte :
sudo ls -la /etc/letsencrypt/live/zapwall.fr/ - Vérifier dans le conteneur :
sudo docker exec lecoffre_nginx_test ls -la /etc/letsencrypt/live/zapwall.fr/ - Vérifier la configuration nginx :
sudo docker exec lecoffre_nginx_test grep ssl_certificate /etc/nginx/conf.d/zapwall.fr.conf - Tester la connexion SSL :
openssl s_client -connect zapwall.fr:443 -servername zapwall.fr
Notes importantes
- Les certificats sont valides uniquement pour
zapwall.fr(pas pourwww.zapwall.fr) - Pour ajouter
www.zapwall.fr, configurer d'abord le DNS, puis relancer certbot avec-d zapwall.fr -d www.zapwall.fr - Les certificats expirent après 90 jours, mais certbot snap configure automatiquement le renouvellement
- Le volume
/etc/letsencryptest monté en lecture seule dans le conteneur, donc les certificats doivent être copiés sur l'hôte dans le répertoire monté - Certbot snap utilise son propre environnement Python, évitant le bug avec Python 3.11