Étapes de configuration
Prérequis
Avant de commencer, assurez-vous d'avoir :
- Un nom de domaine (ex. example.com) pointant vers l'IP publique du serveur
- Ubuntu avec Nginx installé : sudo apt install nginx
- Ports 80 (HTTP) et 443 (HTTPS) ouverts dans le pare-feu
Installation de Certbot
Installez Certbot et le plugin Nginx :
sudo apt update sudo apt install -y certbot python3-certbot-nginx
Configuration du pare-feu UFW
Si UFW est activé, autorisez le trafic HTTP et HTTPS :
sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP' # optionnel
Création du server block Nginx
Créez le répertoire du site et le fichier de configuration :
sudo mkdir -p /var/www/example.com/public sudo nano /etc/nginx/sites-available/example.com
Ajoutez cette configuration de base (remplacez example.com par votre domaine) :
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/public;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Activez le site :
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
Obtention du certificat Let's Encrypt
Lancez Certbot pour obtenir et installer automatiquement le certificat :
sudo certbot --nginx -d example.com -d www.example.com
Durcissement de la sécurité TLS (optionnel)
Pour renforcer la sécurité, ajoutez ces directives dans le bloc server qui écoute sur le port 443 :
ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers HIGH:!aNULL:!MD5; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Puis redémarrez Nginx :
sudo nginx -t && sudo systemctl reload nginx
Test du renouvellement automatique
Testez le processus de renouvellement automatique :
sudo certbot renew --dry-run
Vérifiez que le timer systemd est actif :
systemctl status certbot.timer
Vérification finale
- Visitez http://example.com → doit rediriger vers https://example.com
- Vérifiez la validité du certificat via l'icône de sécurité du navigateur
- Testez avec différents sous-domaines si configurés