Intermédiaire ⏱ 11 min Mis à jour le 29 juillet 2026

Activer HTTPS gratuitement avec Let's Encrypt et Certbot

Le cadenas HTTPS n'est plus optionnel : il protège vos visiteurs et rassure Google. Avec Let's Encrypt et Certbot, un certificat TLS est gratuit et automatique. Voici comment.

Pourquoi passer votre site en HTTPS ?

HTTPS Let’s Encrypt permet de chiffrer les échanges entre le navigateur d’un visiteur et votre VPS. Sans HTTPS, certaines informations peuvent circuler sans protection suffisante entre l’utilisateur et le serveur.

Le chiffrement est indispensable lorsque votre site traite :

  • des identifiants et mots de passe ;
  • des formulaires de contact ;
  • des données personnelles ;
  • des informations de paiement ;
  • des cookies de session ;
  • des espaces d’administration.

HTTPS permet aussi au navigateur de vérifier que le certificat présenté correspond bien au domaine visité.

HTTPHTTPS
Trafic non chiffréTrafic chiffré avec TLS
Port 80Port 443
Aucune validation du domaine par certificatCertificat associé au domaine
Avertissements possibles dans le navigateurCadenas lorsque la configuration est valide

Le terme « certificat SSL » reste couramment employé, mais les configurations modernes utilisent le protocole TLS.

HTTPS constitue également un signal de confiance pour les visiteurs et fait partie des critères techniques pris en compte par les moteurs de recherche. Il ne suffit cependant pas, à lui seul, à sécuriser toute l’application : votre VPS, votre CMS et vos dépendances doivent aussi être maintenus à jour.

Comprendre Let’s Encrypt et Certbot

Let’s Encrypt est une autorité de certification qui délivre gratuitement des certificats TLS validant le contrôle d’un nom de domaine.

Certbot est un outil qui automatise plusieurs opérations :

  1. demander le certificat ;
  2. prouver que vous contrôlez le domaine ;
  3. récupérer les fichiers du certificat ;
  4. adapter la configuration Nginx ;
  5. préparer le renouvellement automatique.

La majorité des certificats Let’s Encrypt classiques ont actuellement une durée de validité de 90 jours. Cette durée est appelée à évoluer : l’automatisation du renouvellement reste donc essentielle et il ne faut pas dépendre d’une intervention manuelle à chaque expiration.

Les principaux fichiers générés sont généralement disponibles sous :

/etc/letsencrypt/live/exemple.fr/

Nginx utilise notamment :

fullchain.pem
privkey.pem

Ne copiez pas et ne partagez jamais privkey.pem. Il s’agit de la clé privée du certificat.

Let’s Encrypt délivre le certificat, mais ne sauvegarde pas votre site et ne corrige pas une configuration Nginx défectueuse.

Vérifier les prérequis

Avant d’installer Certbot, trois conditions doivent être remplies.

Le domaine doit pointer vers le VPS

Les enregistrements DNS A et éventuellement AAAA doivent renvoyer vers les véritables adresses du VPS.

Vérifiez l’IPv4 :

dig +short exemple.fr A

Vérifiez également www :

dig +short www.exemple.fr A

Les résultats doivent correspondre à l’adresse du serveur.

Le guide pour relier un domaine à un VPS détaille la configuration des enregistrements DNS.

Nginx doit déjà répondre en HTTP

Testez le domaine :

curl -I http://exemple.fr

Vous devez recevoir une réponse HTTP provenant du VPS.

Le bloc Nginx doit contenir le bon domaine :

server {
    listen 80;
    listen [::]:80;

    server_name exemple.fr www.exemple.fr;

    root /var/www/exemple.fr;
    index index.html;
}

Validez la configuration :

sudo nginx -t

Puis rechargez-la si nécessaire :

sudo systemctl reload nginx

Consultez le guide pour installer Nginx sur un VPS si le serveur web n’est pas encore prêt.

Les ports 80 et 443 doivent être accessibles

Avec UFW :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Ou avec le profil Nginx :

sudo ufw allow "Nginx Full"

Vérifiez les règles :

sudo ufw status

Le port 80 est notamment nécessaire à la validation HTTP utilisée dans cette procédure. Le port 443 servira ensuite le site en HTTPS.

Pour revoir ces règles, consultez le guide du pare-feu UFW sur un VPS.

Installer Certbot et son plugin Nginx

La méthode recommandée peut varier selon la distribution et sa version. Consultez les instructions officielles de Certbot correspondant précisément à votre système avant l’installation.

N’installez pas simultanément Certbot avec plusieurs gestionnaires de paquets.

Installation avec APT

Sur une distribution proposant les paquets nécessaires :

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

Vérifiez l’installation :

certbot --version

Installation avec Snap

Sur un système utilisant la méthode Snap recommandée pour sa version :

sudo apt update
sudo apt install -y snapd

Installez Certbot :

sudo snap install --classic certbot

Rendez la commande accessible depuis le chemin habituel :

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Si le lien existe déjà, ne le recréez pas.

Vérifiez ensuite :

certbot --version

Choisissez la méthode adaptée à votre distribution et conservez-la pour les futures mises à jour. Mélanger APT, Snap et une installation Python manuelle complique la maintenance.

Obtenir et installer le certificat avec Nginx

Demandez un certificat pour le domaine racine et www :

sudo certbot --nginx \
  -d exemple.fr \
  -d www.exemple.fr

Certbot vous demande généralement :

  • une adresse e-mail de contact ;
  • l’acceptation des conditions du service ;
  • certains choix facultatifs ;
  • la gestion de la redirection HTTP vers HTTPS.

L’adresse e-mail permet de recevoir des informations importantes liées au compte ou aux certificats.

Le plugin Nginx recherche le bloc correspondant à :

server_name exemple.fr www.exemple.fr;

Il obtient ensuite le certificat et adapte la configuration.

Si vous n’utilisez pas www, ne l’ajoutez pas à la commande :

sudo certbot --nginx -d exemple.fr

Le DNS de chaque domaine demandé doit pointer vers le VPS. Une demande comprenant www.exemple.fr échouera si ce sous-domaine n’existe pas ou renvoie vers un autre serveur.

Après l’installation, vérifiez immédiatement la syntaxe :

sudo nginx -t

Puis contrôlez Nginx :

sudo systemctl status nginx

Ne demandez pas des certificats à répétition pour tester au hasard. Corrigez d’abord le DNS, le pare-feu ou le bloc Nginx indiqué dans le message d’erreur.

Vérifier HTTPS et la redirection

Ouvrez dans votre navigateur :

https://exemple.fr

Vérifiez que :

  • la page s’affiche ;
  • le navigateur ne présente pas d’alerte ;
  • le certificat correspond au domaine ;
  • les ressources CSS, JavaScript et images se chargent ;
  • l’adresse utilise bien https://.

Testez la réponse HTTPS en ligne de commande :

curl -I https://exemple.fr

Pour vérifier la redirection HTTP :

curl -I http://exemple.fr

La réponse doit contenir un code de redirection, par exemple :

HTTP/1.1 301 Moved Permanently
Location: https://exemple.fr/

Le code exact peut varier selon la configuration, mais la destination doit utiliser HTTPS.

Si le navigateur affiche une alerte de contenu mixte, recherchez les ressources encore chargées en HTTP :

http://exemple.fr/image.jpg

Remplacez ces références par HTTPS ou par des chemins relatifs.

Vous pouvez afficher les certificats connus de Certbot avec :

sudo certbot certificates

Vérifier le renouvellement automatique

Certbot est normalement installé avec une tâche planifiée, par exemple un timer systemd ou une tâche cron selon la méthode et la distribution.

Recherchez un timer :

systemctl list-timers --all | grep -i certbot

Vous pouvez également vérifier les unités disponibles :

systemctl list-unit-files | grep -i certbot

Testez le renouvellement sans remplacer le certificat réel :

sudo certbot renew --dry-run

Cette commande simule le renouvellement et permet de vérifier :

  • l’accès au domaine ;
  • la méthode de validation ;
  • les fichiers de configuration ;
  • le rechargement du serveur web.

Le résultat attendu indique que les simulations ont réussi.

Consultez les journaux en cas d’échec :

sudo journalctl -u certbot.timer -n 100 --no-pager

Le nom exact de l’unité peut varier selon l’installation. Les logs Certbot sont également généralement enregistrés sous :

/var/log/letsencrypt/

N’attendez pas l’approche de l’expiration pour découvrir qu’un renouvellement ne fonctionne plus. Retestez après une modification du DNS, du pare-feu, de Nginx ou de la méthode d’installation.

Des sauvegardes automatiques sont incluses pour vous aider à restaurer. Conservez aussi vos propres exports réguliers : vous restez responsable de vos données.

Pour renforcer le reste du système, consultez le guide pour sécuriser votre serveur Linux.

En résumé

  • HTTPS chiffre les échanges entre les visiteurs et votre VPS.
  • Let’s Encrypt fournit gratuitement des certificats TLS.
  • Certbot automatise leur obtention, leur installation et leur renouvellement.
  • Vérifiez que le domaine pointe vers le VPS avant toute demande.
  • Assurez-vous que Nginx répond déjà en HTTP.
  • Autorisez les ports 80/tcp et 443/tcp dans le pare-feu.
  • Installez Certbot avec la méthode officielle adaptée à votre distribution.
  • Ne mélangez pas les installations APT, Snap et Python.
  • Demandez le certificat avec certbot --nginx -d exemple.fr.
  • Ajoutez -d www.exemple.fr uniquement si ce sous-domaine existe.
  • Acceptez la redirection HTTP vers HTTPS lorsque Certbot la propose.
  • Vérifiez le résultat avec curl -I.
  • Testez régulièrement le renouvellement avec certbot renew --dry-run.
  • Pour activer HTTPS Let’s Encrypt sur un VPS hébergé en France avec stockage NVMe, Anti-DDoS L3/L4/L7 inclus, panel de gestion et support francophone, découvrez les offres VPS TalCloud.