🔒 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.
```
No comments to display
No comments to display