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 7 vues

7

Lectures

6

Minutes

0

Partages

En 2026, un site web sans HTTPS est non seulement dangereux pour vos utilisateurs, mais aussi pénalisé par Google. Heureusement, Let's Encrypt offre des certificats SSL gratuits et reconnus par tous les navigateurs. Dans ce guide, je vous montre comment sécuriser votre site en quelques minutes avec 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. N'importe qui sur le même réseau (café, aéroport, etc.) peut intercepter :

  • 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. Un site HTTP sera systématiquement classé en dessous d'un équivalent HTTPS.

Pour la confiance

Les navigateurs modernes affichent un avertissement effrayant ("Ce site n'est pas sécurisé") pour les sites HTTP. Vos visiteurs fuiront avant même de voir votre contenu.

Pour les fonctionnalités modernes

De nombreuses API web modernes (géolocalisation, notifications push, service workers) nécessitent HTTPS pour fonctionner.

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 comme Mozilla, Google, et Facebook. Elle délivre des certificats SSL gratuits, automatiquement renouvelables, et reconnus par tous les navigateurs.

Avantages de Let's Encrypt

  • Gratuit - Aucun frais, jamais
  • Automatique - Renouvellement sans intervention
  • Reconnu - Compatible avec 99,9% des navigateurs
  • Rapide - Certificat obtenu en quelques secondes
  • Open source - Transparent et auditable

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un serveur Linux - Ubuntu 20.04+ ou Debian 10+ recommandé
  • Un accès root ou sudo - Pour installer les packages
  • Un nom de domaine - Pointant vers l'IP de votre serveur
  • Apache ou Nginx installé - Et fonctionnel sur le port 80
  • Le port 80 ouvert - Pour la validation du domaine

Installation de Certbot

Certbot est l'outil officiel recommandé par Let's Encrypt. Il automatise l'obtention et le renouvellement des certificats.

Sur Ubuntu/Debian avec Apache

# Mise à jour des packages
sudo apt update

# Installation de Certbot et du plugin Apache
sudo apt install certbot python3-certbot-apache -y

Sur Ubuntu/Debian avec Nginx

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

Sur CentOS/RHEL avec Apache

sudo dnf install epel-release
sudo dnf install certbot python3-certbot-apache

Obtenir un certificat SSL

Méthode automatique (recommandée)

Certbot peut automatiquement configurer votre serveur web. C'est la méthode la plus simple.

Pour Apache

sudo certbot --apache -d votredomaine.com -d www.votredomaine.com

Pour Nginx

sudo certbot --nginx -d votredomaine.com -d www.votredomaine.com

Certbot va :

  1. Vérifier que vous contrôlez le domaine
  2. Générer le certificat
  3. Modifier la configuration de votre serveur web
  4. Configurer la redirection HTTP vers HTTPS (optionnel)
  5. Mettre en place le renouvellement automatique

Méthode manuelle (certonly)

Si vous préférez configurer votre serveur web vous-même :

sudo certbot certonly --standalone -d votredomaine.com -d www.votredomaine.com

Les certificats seront créés dans /etc/letsencrypt/live/votredomaine.com/ :

  • fullchain.pem - Le certificat complet
  • privkey.pem - La clé privée
  • cert.pem - Le certificat seul
  • chain.pem - La chaîne de certification

Configuration manuelle Apache

Si vous avez utilisé la méthode certonly, voici comment configurer Apache :

<VirtualHost *:443>
    ServerName votredomaine.com
    ServerAlias www.votredomaine.com
    DocumentRoot /var/www/votresite

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/votredomaine.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/votredomaine.com/privkey.pem

    # Configuration SSL recommandée
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
    SSLHonorCipherOrder off
</VirtualHost>

# Redirection HTTP vers HTTPS
<VirtualHost *:80>
    ServerName votredomaine.com
    Redirect permanent / https://votredomaine.com/
</VirtualHost>

Configuration manuelle Nginx

server {
    listen 443 ssl http2;
    server_name votredomaine.com www.votredomaine.com;

    ssl_certificate /etc/letsencrypt/live/votredomaine.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/votredomaine.com/privkey.pem;

    # Configuration SSL recommandée
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;

    root /var/www/votresite;
    index index.html;
}

# Redirection HTTP vers HTTPS
server {
    listen 80;
    server_name votredomaine.com www.votredomaine.com;
    return 301 https://$server_name$request_uri;
}

Renouvellement automatique

Les certificats Let's Encrypt expirent après 90 jours. Heureusement, Certbot configure automatiquement un renouvellement.

Vérifier le renouvellement automatique

# Test du renouvellement (sans renouveler vraiment)
sudo certbot renew --dry-run

Si le test réussit, vos certificats seront renouvelés automatiquement avant expiration.

Vérifier le timer systemd

sudo systemctl status certbot.timer

Dépannage des erreurs courantes

Erreur : "Could not bind to port 80"

Un autre service utilise le port 80. Arrêtez temporairement Apache/Nginx :

sudo systemctl stop apache2  # ou nginx
sudo certbot certonly --standalone -d votredomaine.com
sudo systemctl start apache2

Erreur : "DNS problem: NXDOMAIN"

Votre domaine ne pointe pas vers votre serveur. Vérifiez vos enregistrements DNS.

Erreur : "Connection refused"

Le port 80 est bloqué par un firewall. Ouvrez-le :

sudo ufw allow 80
sudo ufw allow 443

Erreur : "Too many requests"

Vous avez dépassé les limites de Let's Encrypt. Attendez quelques heures ou utilisez l'environnement de staging pour les tests :

sudo certbot --staging -d votredomaine.com

Validation par DNS (pour les wildcards)

Pour un certificat wildcard (*.votredomaine.com), vous devez utiliser la validation DNS :

sudo certbot certonly --manual --preferred-challenges dns -d "*.votredomaine.com" -d votredomaine.com

Certbot vous demandera d'ajouter un enregistrement TXT dans votre zone DNS pour prouver que vous contrôlez le domaine.

Vérifier votre certificat

Via le navigateur

Cliquez sur le cadenas dans la barre d'adresse et vérifiez les détails du certificat.

Via la ligne de commande

echo | openssl s_client -connect votredomaine.com:443 2>/dev/null | openssl x509 -noout -dates

Via un outil en ligne

Utilisez SSL Labs pour un audit complet de votre configuration SSL.

Conclusion

Avec Let's Encrypt et Certbot, sécuriser votre site web n'a jamais été aussi simple et gratuit. En quelques minutes, vous pouvez passer de HTTP à HTTPS et offrir à vos visiteurs une connexion sécurisée.

N'attendez plus : un site sans HTTPS en 2026, c'est comme une maison sans serrure. Protégez vos utilisateurs et améliorez votre référencement dès aujourd'hui.

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