🔒 Générer un certificat Let's Encrypt avec Nginx

Cette procédure permet de générer un certificat TLS Let's Encrypt pour un nouveau nom de domaine hébergé derrière le serveur Nginx de la plateforme. 
 Elle est utilisée lorsqu'un nouveau service HTTP(S) est publié. 
 
 🎯 Objectif 
 À la fin de cette procédure : 
 
 Le Virtual Host Nginx existe. 
 Le challenge ACME est accessible. 
 Le certificat Let's Encrypt est généré. 
 Le certificat pourra ensuite être utilisé dans la configuration HTTPS. 
 
 
 📋 Prérequis 
 
 Le nom DNS existe. 
 Le domaine pointe vers le serveur Web. 
 Le port TCP 80 est accessible depuis Internet. 
 Certbot est installé. 
 Nginx fonctionne correctement. 
 
 
 📝 Étape 1 - Créer le Virtual Host 
 Créer un nouveau fichier de configuration. 
 cd /etc/nginx/conf.d

nano pdf.numericare.fr.conf
 
 
 📝 Étape 2 - Ajouter la configuration minimale 
 server {

 listen 80;

 server_name pdf.numericare.fr;

 location /.well-known/acme-challenge/ {

 root /var/www/certbot;

 allow all;

 }

 location / {

 return 404;

 }

}
 
 
 ✅ Étape 3 - Vérifier la configuration Nginx 
 nginx -t
 
 Le résultat attendu est : 
 syntax is ok
test is successful
 
 
 🔄 Étape 4 - Recharger Nginx 
 systemctl reload nginx
 
 
 🔐 Étape 5 - Générer le certificat 
 certbot certonly \
--webroot \
-w /var/www/certbot \
-d pdf.numericare.fr
 
 
 ✅ Étape 6 - Vérifier le certificat 
 certbot certificates
 
 Vérifier notamment : 
 
 Le domaine. 
 La date d'expiration. 
 Le chemin des certificats. 
 
 
 📂 Emplacement des certificats 
 /etc/letsencrypt/live/<domain>/
 
 Les fichiers principaux sont : 
 
 fullchain.pem 
 privkey.pem 
 cert.pem 
 chain.pem 
 
 
 🔍 Vérifications 
 Tester la résolution DNS 
 dig pdf.numericare.fr
 
 Tester l'accès HTTP 
 curl http://pdf.numericare.fr
 
 Tester le challenge ACME 
 curl http://pdf.numericare.fr/.well-known/acme-challenge/test
 
 
 🚨 Dépannage 
 
 
 
 Problème 
 Vérification 
 
 
 
 
 Échec du challenge ACME 
 Vérifier la résolution DNS et le Virtual Host. 
 
 
 Erreur 404 
 Contrôler le répertoire /var/www/certbot . 
 
 
 Erreur de permissions 
 Vérifier les droits sur le répertoire ACME. 
 
 
 Échec de validation 
 Contrôler que le port 80 est bien publié vers Nginx. 
 
 
 
 
 💡 Bonnes pratiques 
 
 Toujours tester la configuration avec nginx -t . 
 Ne jamais recharger Nginx sans validation préalable. 
 Conserver une configuration minimale pendant la génération du certificat. 
 Mettre ensuite à jour le Virtual Host avec la configuration HTTPS définitive. 
 
 
 🚀 Évolution de la plateforme 
 Cette procédure est actuellement réalisée manuellement. L'objectif à long terme est de l'automatiser entièrement via AWX et Ansible. À terme, la création d'un nouveau Virtual Host et l'obtention du certificat Let's Encrypt feront partie du processus de déploiement de la plateforme. 
 ```