Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis
Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis

Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis

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.

Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis

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

Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis

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.
Let’s Encrypt : 10 ans de certificats TLS gratuits — plus de 7 milliards émis

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.

  1. 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)
  2. 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
  3. 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
  4. 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
  5. É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
  6. 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
  7. 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
  8. 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.
  9. 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.

Plateforme de Gestion des Consentements par Real Cookie Banner