Offre Durée limitée : -10% sur tout le site avec le code WELCOME10

Obtenir un certificat Let's Encrypt avec Certbot sur un VPS Linux

Mis à jour le 3 octobre 2026 4 min de lecture 7 sections

Let's Encrypt délivre des certificats SSL/TLS gratuitement via le protocole ACME. Certbot est l'outil officiel admin en ligne de commande qui automatise l'obtention et le renouvellement de vos certificats SSL sur les serveurs web Nginx ou Apache. Ce tutoriel est destiné aux administrateurs qui souhaitent administrer les configurations HTTPS avec authentification automatique sur leur serveur vps Linux ou serveur dédié sous Ubuntu ou Debian.

Prérequis

Il vous faut un serveur vps Linux ou un serveur dédié SSD sous Ubuntu 20.04/22.04/24.04 ou Debian 11/12 avec accès root, un nom de domaine dont l'enregistrement A pointe vers les adresses IP du serveur, et le port 80 ouvert dans le firewall pour la validation HTTP-01. Si vous hébergez sur un VPS Linux ElypseCloud, le port 80 est accessible dès le déploiement. Rechargez les configs UFW :

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

Pour lister les ports actifs et les connexions entrantes, consultez notre guide lister les ports en écoute avec ss.

Installer Certbot via Snap

Certbot est développé en Python et fonctionne comme un daemon administré par systemd. Installez le panel Certbot via Snap pour la dernière version stable, indépendante des configs du gestionnaire de paquets :

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

Vérifiez l'installation : certbot --version. Certbot est aussi disponible via pip (pip install certbot certbot-nginx) mais Snap reste la méthode recommandée pour administrer un serveur vps SSD Ubuntu ou Debian.

Obtenir un certificat SSL

Si Nginx est configuré avec un bloc server_name correspondant à votre domaine, le plugin Nginx obtient le certificat SSL et met à jour les configurations du serveur web pour activer HTTPS :

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

Le certificat SSL est stocké dans /etc/letsencrypt/live/exemple.com/ : fullchain.pem (certificat complet + chaîne intermédiaire), privkey.pem (clé privée, permissions 600, propriétaire root), cert.pem (certificat seul) et chain.pem (chaîne seule). Effectuez des sauvegardes de ces fichiers de config SSL.

Sans serveur web sur le port 80, utilisez le mode standalone avec les hooks pré/post pour redémarrer Nginx ou Apache et libérer le port pour les connexions de validation :

sudo certbot certonly --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl restart nginx" -d exemple.com

Le mode webroot écrit le jeton dans la racine d'un serveur actif sans interrompre les connexions :

sudo certbot certonly --webroot -w /var/www/html -d exemple.com -d www.exemple.com

Pour exposer des services via un proxy inverse Nginx, consultez notre guide publication d'un service VPS Linux en HTTPS.

Renouvellement automatique

Les certificats SSL Let's Encrypt durent 90 jours. Depuis Certbot 4.0.0, le renouvellement est déclenché lorsqu'il reste moins d'un tiers de la durée de vie (environ 30 jours). Le daemon Snap crée un timer systemd qui lance certbot renew deux fois par jour. Vérifiez le timer :

sudo systemctl status snap.certbot.renew.timer

Testez le renouvellement à sec :

sudo certbot renew --dry-run

Pour recharger le serveur web après renouvellement réussi :

sudo certbot renew --deploy-hook "systemctl reload nginx"

Pour être alerté en cas d'échec, consultez notre guide alertes monitoring VPS Linux.

Vérification du certificat SSL

Listez les certificats SSL que vous administrez avec Certbot :

sudo certbot certificates

Contrôlez la validité TLS depuis localhost ou un serveur distant :

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

La date notAfter doit être environ 90 jours après l'émission. Pour une analyse complète, consultez notre guide vérifier un certificat TLS avec openssl s_client.

Challenge DNS et wildcard

Le challenge DNS-01 permet d'obtenir un certificat SSL sans exposer le port 80. Certbot demande de créer un enregistrement TXT _acme-challenge.exemple.com. C'est la seule méthode compatible avec les certificats wildcard (*.exemple.com). Redémarrer les services DNS facilite la propagation :

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

Des plugins automatisent la création du TXT pour Cloudflare, OVH, Gandi. Pour les configs firewall du serveur vps ou dédié, consultez notre guide configurer nftables sur un VPS Linux.

Erreurs fréquentes

Problem binding to port 80
Un service occupe le port 80. Identifiez-le avec ss -tlnp | grep :80 et arrêtez-le. Redémarrer le serveur web libère les connexions sur ce port.
DNS problem: NXDOMAIN looking up A
Le domaine n'est pas propagé sur ses adresses IP. Consultez notre guide diagnostic DNS Linux.
too many certificates already issued
Limite de 5 certificats SSL identiques par semaine. Utilisez --test-cert pour tester les configurations sans consommer le quota.
Renouvellement en échec
Configurez une alerte via notre guide alertes monitoring VPS Linux.

Votre serveur vps Linux ou serveur dédié SSD est maintenant sécurisé avec un certificat SSL Let's Encrypt renouvelé automatiquement. Hébergez vos services sur un VPS Linux ElypseCloud avec firewall anti-DDoS et support technique dédié.

Découvrir les VPS Linux ElypseCloud