Accueil Securité Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis zast Dix ans, sept milliards de certificats… et toujours gratuits Ten Years Since our First Certificate! Oui, déjà 🎂. En dix ans, Let’s Encrypt a émis plus de sept milliards de certificats TLS gratuits, valables 90 jours et renouvelables automatiquement. L’objectif initial — rendre le HTTPS accessible à toutes et tous — s’est mué en standard de fait du Web moderne. « Nous avons créé cette organisation parce que nous étions convaincus de l’importance de TLS… c’est vous, nos abonnés, nos donateurs et nos sponsors qui nous avez permis d’arriver là où nous sommes aujourd’hui.» ParadoxeTemporel et let’s encrypt Sur Paradoxetemporel et nos autres sites, nous utilisons Let’s Encrypt depuis plusieurs années. C’est vrai qu’on avait été poussé à passer au https à l’époque ;). On est loin du temps où le https n’était que pour les sites de e-commerce. Pourquoi ces 90 jours ? Les certificats courts réduisent le risque en cas de compromission et encouragent l’automatisation (via ACME), ce qui simplifie la vie des admins tout en élevant le niveau de sécurité global. L’impact pour le Web HTTPS par défaut : navigation plus sûre pour tout le monde. Barrière à l’entrée supprimée : coût nul, procédure automatisée. Écosystème ACME : clients, intégrations hosting/CDN, CI/CD, IoT. Comment commencer (ou vérifier votre config) Utilisez un client ACME (Certbot, etc.). Automatisez le renouvellement (cron/systemd). Testez la config : chaînes, OCSP, TLS versions/ciphers, HSTS si pertinent. Et maintenant ? Let’s Encrypt poursuit sa mission : certificats gratuits, standards ouverts, automatisation et pédagogie pour un Web chiffré de bout en bout. Installer Let’s Encrypt (Certbot) sur Nginx – Debian (11/12/13) Guide pas à pas pour émettre un certificat TLS gratuit avec Certbot, configurer Nginx en HTTPS moderne (HTTP/2, OCSP stapling, HSTS optionnel) et automatiser le renouvellement. Vérifier DNS et ouvrir les ports 80/443 Assurez-vous que vos enregistrements DNS A/AAAA pointent vers le serveur et que les ports 80 (HTTP) et 443 (HTTPS) sont ouverts. # Vérifier la résolution DNS dig A exemple.com +short dig AAAA exemple.com +short # Pare-feu (UFW) : autoriser Nginx sudo ufw allow 'Nginx Full' # (laisser temporairement "Nginx HTTP" ouvert jusqu'à l'émission du 1er certificat) Installer Nginx Installez Nginx depuis les dépôts Debian (11/12/13). sudo apt update sudo apt install -y nginx sudo systemctl enable --now nginx Installer Certbot (Snap recommandé) ou via APT La distribution Snap de Certbot est la plus à jour et recommandée par l’ISRG/Let’s Encrypt. # Installation via Snap (recommandé) sudo apt install -y snapd sudo snap install core && sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot # (Alternative) via APT si vous ne voulez pas Snap sudo apt install -y certbot python3-certbot-nginx Préparer le vhost HTTP (validation HTTP-01) Si vous n’utilisez pas l’intégration automatique Nginx de Certbot, exposez le site en HTTP 80 et laissez l’accès au chemin ACME. server { listen 80; listen [::]:80; server_name exemple.com www.exemple.com; root /var/www/exemple.com/html; index index.html; location / { try_files $uri $uri/ =404; } # Laisser l'accès ACME pour HTTP-01 location ^~ /.well-known/acme-challenge/ { allow all; } } sudo nginx -t && sudo systemctl reload nginx Émettre le certificat avec Certbot Méthode la plus simple : le plugin Nginx (génère la config HTTPS et la redirection). # Plugin Nginx (recommandé) sudo certbot --nginx -d exemple.com -d www.exemple.com # Choisissez la redirection HTTP → HTTPS quand Certbot le propose. # (Option) Webroot si vous préférez gérer la conf Nginx vous-même sudo certbot certonly --webroot \ -w /var/www/exemple.com/html \ -d exemple.com -d www.exemple.com # (Option) Clés ECDSA plus légères/performantes sudo certbot --nginx --key-type ecdsa -d exemple.com -d www.exemple.com Activer HTTPS moderne (HTTP/2, OCSP stapling, HSTS) Exemple de vhost complet si vous n’avez pas laissé Certbot modifier Nginx : # Redirection www → apex (inversez si vous préférez www canonique) server { listen 80; listen [::]:80; server_name www.exemple.com; return 301 https://exemple.com$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name exemple.com; root /var/www/exemple.com/html; index index.html; # Chemins Let’s Encrypt ssl_certificate /etc/letsencrypt/live/exemple.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/exemple.com/privkey.pem; # Protocoles ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; # OCSP stapling (complet) ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/exemple.com/chain.pem; resolver 1.1.1.1 9.9.9.9 valid=300s; resolver_timeout 5s; # En-têtes sécurité (adaptez selon votre app) add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; # (Optionnel) HSTS — uniquement si tout est 100% HTTPS # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; location / { try_files $uri $uri/ =404; } } # Apex HTTP → HTTPS server { listen 80; listen [::]:80; server_name exemple.com; # Laissez le chemin ACME si vous renouvelez en HTTP-01 location ^~ /.well-known/acme-challenge/ { root /var/www/exemple.com/html; } return 301 https://exemple.com$request_uri; } sudo nginx -t && sudo systemctl reload nginx Automatiser le renouvellement et vérifier Certbot installe un timer systemd (via Snap) ou un service/cron (via APT). Testez un renouvellement à blanc. # Vérifier le timer (Snap) systemctl status snap.certbot.renew.service 2>/dev/null || systemctl status certbot.timer # Test à blanc (toutes les confs) sudo certbot renew --dry-run # Lister les certificats sudo certbot certificates # Logs utiles sudo tail -n 200 /var/log/letsencrypt/letsencrypt.log Dépanner les erreurs courantes Échec HTTP-01 : port 80 fermé, mauvaise IP v6 (AAAA), proxy CDN actif, server_name incorrect, conflit de vhosts. Boucle de redirection : laissez l’accès ACME en HTTP si vous n’utilisez pas --nginx. Rate limit : utilisez --staging pour les tests et attendez la fenêtre si nécessaire. OCSP erreur : vérifiez ssl_trusted_certificate chain.pem et la directive resolver. Voir aussizastCritiqueSecurité 20 juillet 2025 à 10h44Test de la Blink outdoor 4 Wildcard & multi-domaine (DNS-01) Pour un certificat générique *.exemple.com, utilisez un plugin DNS (Cloudflare/OVH…) : sudo certbot -a dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cf.ini \ -d exemple.com -d '*.exemple.com' Ajoutez ensuite les chemins ssl_certificate/ssl_certificate_key correspondants dans votre vhost. Quelques réponses à vos questions sur Let’s encrypt Pourquoi Let’s Encrypt propose des certificats de 90 jours ? La durée courte réduit le risque en cas de compromission et encourage l’automatisation via ACME, améliorant la sécurité et la fiabilité des déploiements HTTPS. Combien de certificats Let’s Encrypt a-t-il émis en 10 ans ? Plus de sept milliards de certificats ont été émis depuis le premier certificat, une étape majeure pour la généralisation du HTTPS. Let’s Encrypt est-il vraiment gratuit pour toujours ? Oui, l’émission de certificats est gratuite. Le projet est porté par une fondation à but non lucratif et soutenu par des dons, sponsors et la communauté. Comment obtenir un certificat Let’s Encrypt facilement ? Installez un client ACME (ex. Certbot), validez votre domaine (HTTP-01 ou DNS-01) puis activez le renouvellement automatique via cron ou systemd. Faut-il changer quelque chose sur mon serveur pour HTTPS moderne ? Assurez-vous d’activer TLS 1.2/1.3, des suites de chiffrement à jour, la redirection HTTP→HTTPS, et envisagez HSTS si votre site est entièrement en HTTPS.