Skip to main content

🔒 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.

```