Blog

Tutoriels, guides et actualités produit.

Sécurité et sauvegardes

Certificats HTTPS gratuits avec Let's Encrypt

2 novembre 2026 6 min de lecture
Partager cet article

Let's Encrypt est une autorité de certification qui délivre des certificats HTTPS gratuits pour votre domaine. Sur votre VPS, vous pouvez obtenir un certificat avec quelques commandes en utilisant Certbot, ou sans aucune commande avec Caddy, et les deux le renouvellent tout seuls. Il y a deux conditions : le domaine doit pointer vers l'adresse IP de votre serveur, et les ports 80 et 443 doivent être ouverts depuis l'extérieur.

Pourquoi avez-vous besoin de HTTPS ?

HTTPS chiffre le trafic entre le navigateur et le serveur. Des tiers sur le réseau ne peuvent pas lire le mot de passe d'un formulaire de connexion ni les détails d'une commande. Les navigateurs peuvent afficher un avertissement « non sécurisé » sur les sites sans HTTPS. Un certificat Let's Encrypt est gratuit : il n'y a donc plus de bonne raison de se passer de HTTPS.

Avant de commencer

  • L'enregistrement A du domaine doit indiquer l'adresse IP de votre serveur. Pour vérifier, exécutez dig +short example.com. Le résultat doit être l'adresse IP de votre serveur.
  • Les ports 80 et 443 doivent être ouverts, car la validation se fait sur le port 80 (HTTP-01). Si vous utilisez ufw, exécutez sudo ufw allow 80/tcp et sudo ufw allow 443/tcp. Si votre serveur a un pare-feu distinct dans son panneau, vérifiez aussi les règles à cet endroit.
  • Si le domaine a un enregistrement AAAA (IPv6), il doit lui aussi pointer vers ce serveur. Sinon, supprimez l'enregistrement.
  • Votre serveur web doit être en marche et connaître ce domaine.

Installer et vérifier avec Certbot sur Nginx ou Apache

Les instructions officielles de Certbot recommandent le paquet snap. Assurez-vous que snapd est installé sur le serveur (sous Ubuntu, c'est généralement le cas) et supprimez tout ancien Certbot installé via apt.

  1. Installez Certbot : sudo snap install --classic certbot
  2. Rendez la commande disponible partout : sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
  3. Obtenez le certificat et faites-le installer dans le serveur web. Exécutez sudo certbot --nginx pour Nginx ou sudo certbot --apache pour Apache.
  4. Répondez aux questions : votre adresse e-mail, les domaines pour lesquels vous voulez le certificat, et s'il faut rediriger HTTP vers HTTPS.
  5. Essayez le renouvellement : sudo certbot renew --dry-run

Si vous voulez seulement obtenir le certificat et tout configurer vous-même, exécutez sudo certbot certonly --nginx. Le paquet Certbot ajoute de lui-même une tâche planifiée (cron ou minuteur systemd), visible dans la sortie de systemctl list-timers. sudo certbot certificates liste vos certificats et leurs dates d'expiration. Certbot renouvelle un certificat quand sa durée de vie s'épuise, et vous n'avez rien à faire. Un renouvellement peut tout de même échouer un jour (par exemple à cause d'une règle de pare-feu) : exécutez donc --dry-run de temps en temps.

Pour vérifier le certificat, regardez d'abord l'icône de cadenas dans la barre d'adresse du navigateur. Pour voir la date d'expiration avec une commande, exécutez :

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

La ligne notAfter du résultat est la date d'expiration du certificat. Si vous n'utilisez pas la redirection ajoutée par Certbot, redirigez vous-même HTTP vers HTTPS. Sous Nginx, ajoutez la ligne return 301 https://$host$request_uri; au bloc server qui écoute sur le port 80.

Avec Caddy et sans commande

Si vous utilisez Caddy, vous n'avez rien de plus à installer. Pour un domaine présent dans sa configuration, Caddy obtient le certificat auprès de Let's Encrypt ou de ZeroSSL, le renouvelle et redirige HTTP vers HTTPS. Selon sa documentation officielle, les enregistrements A et AAAA du domaine doivent pointer vers le serveur, les ports 80 et 443 doivent être accessibles depuis l'extérieur, et le dossier de données de Caddy doit être persistant et accessible en écriture. Si vous faites tourner Caddy dans Docker, montez ce dossier sur un volume. Sinon, les certificats disparaissent quand le conteneur est supprimé, et les redemander peut atteindre une limite de débit.

Certificats wildcard

Un certificat wildcard (*.example.com) couvre tous les sous-domaines avec un seul certificat, et il ne s'obtient qu'avec la validation DNS-01. Cette validation n'utilise pas le port 80. Elle vous demande de placer un enregistrement TXT dans le DNS de votre domaine. Pour cela, votre fournisseur DNS doit proposer une API, et vous stockez la clé d'API sur le serveur. La documentation de Let's Encrypt juge risqué de stocker de telles clés sur un serveur web. Si vous n'avez pas besoin d'un wildcard, obtenir des certificats pour chaque domaine avec HTTP-01 est plus simple et n'oblige pas à stocker de clé DNS.

Erreurs courantes

SymptômeCause probableSolution
La validation échoue, domaine introuvableL'enregistrement A pointe vers la mauvaise IP ou ne s'est pas encore propagéVérifiez l'IP avec dig +short example.com et patientez
Délai dépasséLe port 80 est ferméOuvrez le 80 dans ufw et dans le pare-feu du panneau, si vous en avez un
La validation réussit parfois et échoue d'autres foisL'enregistrement AAAA pointe vers un autre serveurCorrigez ou supprimez l'enregistrement AAAA
Erreur de limite de débitTrop de tentativesUtilisez --dry-run pour les tests et consultez la page officielle pour les limites
Le renouvellement ne s'exécute pasPas de tâche planifiée, ou le serveur web bloque le port 80sudo certbot renew --dry-run affiche l'erreur

Le message d'erreur indique généralement quelle validation a échoué et quelle adresse de votre serveur Let's Encrypt a tenté d'atteindre. Lisez le message tel quel. La réponse s'y trouve souvent.

Selon la page officielle de Let's Encrypt, il existe une limite de 5 certificats par semaine pour un même ensemble de noms de domaine et de 5 validations échouées par heure pour un même nom de domaine. Utilisez donc --dry-run pendant vos essais. Il tente le renouvellement dans l'environnement de test (staging) et ne consomme pas votre vraie limite.

Sur les applications prêtes à l'emploi de Seturack

Les applications prêtes à l'emploi (WordPress, Nextcloud et d'autres) s'ouvrent en HTTPS sur une adresse sslip.io dérivée de votre adresse IP, sans nom de domaine nécessaire. Quand vous raccordez votre propre domaine, Caddy obtient de nouveau le certificat, et vous n'installez rien de plus. Les étapes pour faire connaître le domaine à Caddy et à l'application figurent dans cet article d'aide.

Commentaires0

Pas encore de commentaire

Soyez le premier à partager votre avis.

Rejoignez la discussion

Veuillez vous connecter ou vous inscrire pour laisser un commentaire.

Ne manquez aucun article

Recevez nos derniers tutoriels, guides et actualités produit dans votre boîte de réception.

Votre abonnement à notre newsletter est confirmé.