Certificat Let's Encrypt gratuit
Comment émettre et renouveler automatiquement un certificat HTTPS sur un VPS avec certbot, y compris le cas où le port 80 est déjà utilisé.
Mis à jour le 23 août 2026
Un certificat est nécessaire pour que le navigateur n'affiche pas « Non sécurisé » et pour que les formulaires et les paiements fonctionnent tout simplement. Let's Encrypt en délivre un gratuitement pour 90 jours avec renouvellement automatique.
Préparation
Vérifiez trois points, sinon la délivrance échouera :
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- l'enregistrement A du domaine pointe vers l'adresse indiquée dans l'onglet « Overview » du panneau à l'adresse
/hosting/vds/m/<id>; - le port 80 est accessible depuis l'extérieur — Let's Encrypt l'utilise pour vérifier la propriété du domaine ;
- un serveur web est en cours d'exécution : Nginx ou Apache.
Si vous utilisez Caddy, vous n'avez rien à faire — il délivre les certificats tout seul.
Délivrance
apt install -y certbot python3-certbot-nginx # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx # AlmaLinux, CentOS Stream
certbot --nginx -d example.ru -d www.example.ru
Pour Apache, c'est le même chemin avec python3-certbot-apache et l'option --apache. Certbot ajoute lui-même le bloc de certificat et la redirection HTTP vers HTTPS dans la configuration.
Vérifiez le résultat :
certbot certificates
curl -I https://example.ru
Renouvellement automatique
Le paquet installe un timer systemd, qui gère aussi le renouvellement. Assurez-vous que le timer est actif et lancez un renouvellement de test :
systemctl list-timers | grep certbot
certbot renew --dry-run
Le dry run est obligatoire. Il permet de détecter la situation où le renouvellement échouera dans deux mois — par exemple, vous avez renommé la configuration du site et certbot ne sait plus où placer le fichier de vérification.
Quand le port 80 est occupé
Si une application tourne sur le port 80 et que vous ne pouvez pas y placer un serveur web, utilisez un mode séparé :
certbot certonly --standalone --preferred-challenges http -d example.ru
Certbot lancera son propre serveur temporaire pendant toute la durée de la vérification. Pour cela, vous devrez arrêter l'application : --pre-hook et --post-hook peuvent le faire automatiquement.
Après la délivrance, les certificats se trouvent dans /etc/letsencrypt/live/example.ru/ : fullchain.pem et privkey.pem.
Erreurs courantes
| Symptôme | Cause |
|---|---|
Timeout during connect | Le port 80 est bloqué par le pare-feu, ou le domaine pointe vers une autre machine |
too many certificates already issued | Vous avez atteint la limite hebdomadaire pour le domaine — attendez ou déboguez avec --staging |
| Le site sert l'ancien certificat après la délivrance | Vous n'avez pas rechargé le serveur web : systemctl reload nginx |
| Le certificat a expiré | Le timer est désactivé — vérifiez avec systemctl enable --now certbot.timer |
Le répertoire
/etc/letsencryptfait partie de vos données. Il n'y a pas de sauvegardes automatiques de la machine, alors incluez-le dans votre sauvegarde avec les configurations de votre serveur web.