Configurer SSL gratuit avec Let's Encrypt et Certbot

Guide complet pour sécuriser votre site avec un certificat SSL gratuit. Installation de Certbot, configuration Apache/Nginx, renouvellement automatique et dépannage.

05 Feb 2026 6 min de lecture 44 vues
44

Lectures

6

Minutes

0

Partages

En 2026, posséder un site web sans HTTPS est non seulement risqué pour la sécurité de vos utilisateurs, mais c'est également un critère qui peut impacter négativement votre positionnement sur les moteurs de recherche. Google a clairement indiqué qu'il privilégie les sites sécurisés via HTTPS, et les navigateurs modernes affichent désormais des avertissements pour les sites non sécurisés. Heureusement, Let's Encrypt offre une solution gratuite et simplifiée pour obtenir des certificats SSL, et avec Certbot, la configuration et le renouvellement de ces certificats deviennent un jeu d'enfant. Cet article vous guidera à travers le processus d'installation et de configuration d'un certificat SSL gratuit avec Let's Encrypt et Certbot.

Pourquoi SSL est indispensable

Pour la sécurité

Sans HTTPS, les données échangées entre votre site et vos visiteurs circulent en clair sur le réseau. Cela signifie que n'importe quelle personne malveillante se trouvant sur le même réseau que votre utilisateur (par exemple, dans un café ou un aéroport) peut intercepter des informations sensibles telles que :

  • Les mots de passe
  • Les données de formulaires
  • Les cookies de session
  • Toutes les informations personnelles

Pour le référencement (SEO)

Google favorise les sites HTTPS dans ses résultats de recherche. Ainsi, un site utilisant HTTP sera systématiquement classé en dessous d'un équivalent HTTPS, ce qui pourrait réduire votre visibilité en ligne.

Pour la confiance

Les navigateurs modernes affichent un avertissement effrayant ("Ce site n'est pas sécurisé") pour les sites en HTTP. Cela a pour conséquence que vos visiteurs risquent de quitter votre site avant même d'avoir vu votre contenu.

Pour les fonctionnalités modernes

De nombreuses API web modernes, telles que la géolocalisation, les notifications push, et les service workers, nécessitent HTTPS pour fonctionner correctement. Sans HTTPS, vous pourriez vous priver de fonctionnalités avancées pour vos utilisateurs.

Let's Encrypt : la révolution du SSL gratuit

Let's Encrypt est une autorité de certification à but non lucratif, soutenue par des géants de l'industrie tels que Mozilla, Google, et Facebook. Elle a été créée pour rendre le chiffrement HTTPS accessible à tous les sites web, sans frais. Voici quelques-uns des principaux avantages de Let's Encrypt :

  • Gratuit : Aucun frais, jamais.
  • Automatisé : Les certificats sont automatiquement renouvelables.
  • Reconnu : Les certificats de Let's Encrypt sont reconnus par tous les navigateurs modernes.

Configurer SSL avec Certbot

Installation de Certbot

Certbot est un outil fourni par l'Electronic Frontier Foundation qui automatise le processus d'obtention et de renouvellement des certificats SSL de Let's Encrypt. Voici comment l'installer sur un serveur Linux :

sudo apt-get update
sudo apt-get install certbot python3-certbot-apache

Ces commandes installent Certbot ainsi que le plugin Apache si vous utilisez ce serveur web. Il existe également des plugins pour d'autres serveurs web comme Nginx.

Obtention d'un certificat SSL

Pour obtenir un certificat SSL, exécutez la commande suivante :

sudo certbot --apache

Certbot vous guidera à travers le processus de configuration, vous demandant de confirmer votre domaine et de décider si vous souhaitez rediriger tout le trafic HTTP vers HTTPS.

Renouvellement automatique

Let's Encrypt délivre des certificats valables 90 jours, mais Certbot peut configurer un renouvellement automatique pour vous. Vous pouvez simuler un renouvellement et vérifier qu'il fonctionne avec :

sudo certbot renew --dry-run

Assurez-vous que cette commande ne génère pas d'erreur, et programmez-la avec un cron job pour qu'elle s'exécute régulièrement.

Bonnes pratiques pour l'utilisation de Certbot

Pour garantir le bon fonctionnement de vos certificats SSL avec Certbot, voici quelques bonnes pratiques :

  • Testez régulièrement vos renouvellements : Utilisez la commande --dry-run pour simuler les renouvellements.
  • Surveillez vos emails : Let's Encrypt vous envoie des notifications par email si un certificat est sur le point d'expirer et n'a pas été renouvelé.
  • Mettez à jour Certbot : Gardez Certbot à jour pour bénéficier des dernières améliorations et correctifs de sécurité.

Pièges courants lors de la configuration SSL

Bien que l'utilisation de Let's Encrypt et Certbot soit relativement simple, certains développeurs rencontrent des problèmes courants :

Mauvaise redirection HTTP vers HTTPS

Assurez-vous que toutes les requêtes HTTP sont correctement redirigées vers HTTPS. Cela peut être configuré dans votre fichier de configuration Apache ou Nginx.

Problèmes avec les certificats expirés

Un renouvellement automatique mal configuré peut entraîner l'expiration de votre certificat. Utilisez une tâche cron pour automatiser le renouvellement et vérifiez régulièrement son fonctionnement.

Cas d'usage réels

De nombreux sites web, des petites entreprises aux grandes organisations, utilisent Let's Encrypt pour sécuriser leurs communications web. Voici quelques exemples :

  • Petites entreprises : Les PME utilisent Let's Encrypt pour protéger les données de leurs clients sans débourser de frais de certification élevés.
  • Sites personnels : Les blogueurs et les développeurs utilisent Let's Encrypt pour sécuriser leurs sites personnels et garantir la confidentialité de leurs visiteurs.
  • Organisations à but non lucratif : Let's Encrypt est idéal pour les organisations qui ont besoin de protéger les données de leurs membres tout en respectant un budget serré.

Comparaison avec d'autres solutions SSL

Solution SSLCoûtRenouvellement
Let's EncryptGratuitAutomatique
Comodo SSLPayantManuel ou payant
Symantec SSLPayantManuel ou payant

Let's Encrypt offre une solution gratuite et automatisée, tandis que d'autres fournisseurs peuvent facturer des frais et nécessiter un renouvellement manuel.

Conseil pro : Assurez-vous de sécuriser non seulement votre site principal, mais aussi tous les sous-domaines pertinents avec un certificat wildcard si nécessaire.

Recapitulatif

En résumé, la configuration d'un certificat SSL gratuit avec Let's Encrypt et Certbot est une étape essentielle pour sécuriser votre site web. Non seulement cela protège les données de vos utilisateurs, mais cela améliore également votre référencement et renforce la confiance de vos visiteurs. En suivant les étapes décrites dans cet article, vous pouvez facilement obtenir et gérer des certificats SSL sans frais, tout en évitant les pièges courants. Let's Encrypt et Certbot rendent le chiffrement web accessible à tous, contribuant ainsi à un internet plus sécurisé pour tous.

Configurer SSL pour plusieurs domaines et sous-domaines

Let's Encrypt permet de sécuriser plusieurs domaines avec un seul certificat wildcard ou avec des certificats SAN (Subject Alternative Name). Voici comment gérer des configurations multi-domaines.

Certificat wildcard avec DNS challenge

Un certificat wildcard (*.mondomaine.com) couvre tous les sous-domaines. Il nécessite un DNS challenge (au lieu du HTTP challenge habituel) :

# Obtenir un certificat wildcard via DNS challenge
sudo certbot certonly   --manual   --preferred-challenges dns   -d "jordaneyeno.site"   -d "*.jordaneyeno.site"

# Certbot vous demandera d'ajouter un enregistrement DNS TXT :
# _acme-challenge.jordaneyeno.site -> "valeur_fournie_par_certbot"

# Après ajout du DNS TXT, valider et obtenir le certificat

Configuration Nginx multi-domaines

server {
    listen 443 ssl http2;
    server_name jordaneyeno.site www.jordaneyeno.site;

    ssl_certificate     /etc/letsencrypt/live/jordaneyeno.site/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/jordaneyeno.site/privkey.pem;

    # Sécurité SSL renforcée
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # HSTS (HTTP Strict Transport Security)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Conseil pro : Testez la qualité de votre configuration SSL sur ssllabs.com/ssltest/. Une bonne configuration devrait obtenir la note A ou A+. Les principaux points vérifiés sont : la version TLS minimale, les ciphers supportés, le HSTS et l'OCSP Stapling.

Automatiser le renouvellement et surveiller l'expiration

# Vérifier que le timer de renouvellement automatique est actif
sudo systemctl status certbot.timer
sudo systemctl list-timers | grep certbot

# Script de monitoring : alerter si un certificat expire dans moins de 30 jours
#!/bin/bash
DOMAIN="jordaneyeno.site"
EXPIRY=$(echo | openssl s_client -connect $DOMAIN:443 2>/dev/null          | openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))

if [ $DAYS_LEFT -lt 30 ]; then
  echo "ALERTE: Certificat $DOMAIN expire dans $DAYS_LEFT jours!"
  # Envoyer un email ou notification ici
fi

Problèmes courants et solutions

ErreurCause probableSolution
Challenge HTTP-01 failedPort 80 bloqué ou mauvaise redirectionOuvrir le port 80 dans le pare-feu
Too many certificatesLimite de 5 certificats/semaine atteinteUtiliser --staging pour les tests
Certificate expiredTimer de renouvellement désactivésudo systemctl enable certbot.timer
OCSP stapling failedRésolveur DNS inaccessibleConfigurer un resolver DNS dans Nginx
Mixed content warningRessources HTTP sur page HTTPSForcer HTTPS sur toutes les URLs

Partagez cet article

Twitter Facebook LinkedIn
JY
Jordane YENO

Developpeur Full Stack passionne par le web et les nouvelles technologies

En savoir plus

Articles similaires