SSL/TLS : le guide complet pour sécuriser son site web
Tout sur les certificats SSL : Let's Encrypt, certificats wildcard, configuration NGINX et Apache, HSTS.
En 2025, un site sans HTTPS est une anomalie. Les navigateurs affichent des avertissements, Google pénalise le SEO, et les utilisateurs fuient. Mais configurer SSL correctement va bien au-delà d'obtenir un cadenas vert — cipher suites, HSTS, OCSP stapling, Perfect Forward Secrecy… ce guide couvre tout.
Let's Encrypt avec Certbot — Installation
Let's Encrypt offre des certificats gratuits, automatiquement renouvelés. Certbot est l'outil officiel.
# Debian/Ubuntu
apt install -y certbot python3-certbot-nginx
# Obtenir un certificat pour NGINX
certbot --nginx -d xytherion.online -d www.xytherion.online
# Renouvellement automatique (vérifie que le cron existe)
certbot renew --dry-run
# Le cron est dans /etc/cron.d/certbot
cat /etc/cron.d/certbotCertificate Wildcard avec DNS Challenge
Pour couvrir *.xytherion.online (tous les sous-domaines), il faut valider via un enregistrement DNS TXT.
certbot certonly --manual --preferred-challenges dns -d "*.xytherion.online" -d "xytherion.online"
# Certbot vous donnera une valeur à ajouter en TXT :
# _acme-challenge.xytherion.online. TXT "abc123xyz..."
# Attendez la propagation DNS avant de validerConfiguration NGINX sécurisée
Une config NGINX TLS moderne avec les meilleures pratiques :
server {
listen 80;
server_name xytherion.online www.xytherion.online;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name xytherion.online www.xytherion.online;
# Certificats Let's Encrypt
ssl_certificate /etc/letsencrypt/live/xytherion.online/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xytherion.online/privkey.pem;
# Protocoles modernes uniquement (TLS 1.2 minimum)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
# Cipher suites modernes (Mozilla Intermediate)
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256;
# HSTS — force HTTPS pendant 1 an
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# Headers sécurité supplémentaires
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
# OCSP Stapling — accélère la vérification du certificat
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/xytherion.online/chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;
# Session cache
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# DH params (Perfect Forward Secrecy)
ssl_dhparam /etc/nginx/dhparam.pem;
root /var/www/xytherion.online;
index index.html;
}# Générer les paramètres DH (une seule fois, ~2 minutes)
openssl dhparam -out /etc/nginx/dhparam.pem 2048
nginx -t && systemctl reload nginxVérifier la qualité de sa configuration SSL
- SSL Labs (ssllabs.com/ssltest) — vise le grade A+
- Security Headers (securityheaders.com) — vérifier les headers HTTP
- Mozilla SSL Config Generator — générateur de config par profil (Modern/Intermediate/Old)
Comprendre HSTS et le Preload
HSTS (HTTP Strict Transport Security) indique au navigateur de toujours utiliser HTTPS pour votre domaine, même si l'utilisateur tape http://.
Le flag preload soumet votre domaine à la Preload List Chrome/Firefox (navigateurs hardcodent HTTPS). C'est irréversible à court terme — assurez-vous que TOUT votre domaine (sous-domaines inclus) fonctionne en HTTPS avant d'ajouter includeSubDomains + preload.
Renouvellement automatique et monitoring
# Vérifier la date d'expiration
openssl x509 -enddate -noout -in /etc/letsencrypt/live/xytherion.online/cert.pem
# Ou depuis l'extérieur
echo | openssl s_client -servername xytherion.online -connect xytherion.online:443 2>/dev/null | openssl x509 -noout -dates
# Forcer le renouvellement si besoin
certbot renew --force-renewalConfigurez une alerte (UptimeRobot, Better Uptime) sur l'expiration SSL. Let's Encrypt envoie aussi des emails d'avertissement 30/20/10 jours avant expiration.
Testez vos configurations
Xytherion Tools propose des outils gratuits pour vérifier vos DNS, auditer votre SSL, tester SPF/DKIM/DMARC et bien plus — directement depuis votre navigateur.