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é.
| HTTP | HTTPS |
|---|---|
| Trafic non chiffré | Trafic chiffré avec TLS |
Port 80 | Port 443 |
| Aucune validation du domaine par certificat | Certificat associé au domaine |
| Avertissements possibles dans le navigateur | Cadenas 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 :
- demander le certificat ;
- prouver que vous contrôlez le domaine ;
- récupérer les fichiers du certificat ;
- adapter la configuration Nginx ;
- 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/tcpet443/tcpdans 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.fruniquement 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.