Retour sur : Guides sur la technologie
Comment installer un certificat SSL avec certbot sur Ubuntu et Apache
Pour installer un certificat SSL avec certbot sur Ubuntu et Apache, installez certbot en snap, puis lancez sudo certbot --apache. Certbot obtient un certificat gratuit de Let’s Encrypt, l’ajoute à votre hôte virtuel Apache, redirige HTTP vers HTTPS et planifie le renouvellement automatique. Si le DNS pointe déjà vers le serveur, le travail tient en six courtes étapes.
Les commandes ci-dessous suivent les instructions officielles de certbot pour Apache sous Linux (snap), en date de novembre 2026. Elles s’appliquent aux versions LTS actuelles d’Ubuntu, 26.04 LTS et 24.04 LTS. Nous utilisons example.ca et www.example.ca comme domaines ; remplacez-les par les vôtres.
Ce qu’il faut avant d’installer certbot
Il vous faut un serveur Ubuntu avec Apache, un domaine dont le DNS pointe vers ce serveur, et les ports 80 et 443 ouverts. Vérifiez chaque point d’abord : la plupart des échecs de certbot viennent de l’un d’eux.
Une version d’Ubuntu prise en charge. Ubuntu 26.04 LTS (avril 2026) et 24.04 LTS sont les versions à long terme actuelles ; la 22.04 LTS quitte le soutien standard en 2027. Consultez le cycle de publication d’Ubuntu.
Apache 2.4 qui sert le site sur le port 80, avec un bloc
<VirtualHost *:80>dont leServerNameestexample.caet leServerAliasestwww.example.ca. Si le site n’a pas encore d’hôte virtuel, suivez notre guide pour configurer un hôte virtuel Apache pour un domaine ou un sous-domaine.Des enregistrements DNS (un enregistrement A, plus AAAA si le serveur a une adresse IPv6) pour
example.caetwww.example.ca, qui pointent vers l’adresse IP publique du serveur.Le port 80 ouvert. Let’s Encrypt vérifie le contrôle du domaine par HTTP, et son défi HTTP-01 ne fonctionne que sur le port 80. Le port 443 doit être ouvert pour les visiteurs en HTTPS.
Un utilisateur avec les droits sudo sur le serveur.
Avant de lancer certbot sur un serveur chez msmtech, nous vérifions le DNS avec dig +short example.ca et dig +short www.example.ca. Les deux doivent afficher l’adresse IP du serveur. Si l’un montre encore l’ancien hébergeur, attendez la mise à jour du DNS avant de continuer.
Si vous utilisez le pare-feu UFW d’Ubuntu, autorisez le trafic web avec le profil installé par Apache :
sudo ufw allow 'Apache Full'
Étape 1 : vérifier que snapd est installé
Certbot est distribué en snap, donc le serveur a besoin de snapd. Ubuntu Server inclut snapd ; c’est donc d’habitude une simple vérification :
snap version
Si la commande est introuvable, installez snapd depuis les dépôts d’Ubuntu, comme l’explique le guide d’installation de snapd de Snapcraft :
sudo apt update
sudo apt install snapd
Étape 2 : retirer l’ancien paquet certbot
Retirez certbot s’il a déjà été installé avec apt, pour que le snap soit le seul certbot du serveur. Les instructions de certbot demandent cette étape :
sudo apt remove certbot
Si apt indique que certbot n’est pas installé, passez à la suite.
Étape 3 : installer certbot avec snap
Installez certbot en confinement classique, puis créez un lien pour lancer la commande de n’importe où :
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
Les anciens guides, dont la première version de celui-ci, créaient le lien vers /usr/bin/certbot. Les instructions actuelles de certbot utilisent /usr/local/bin/certbot. Si ln répond que le fichier existe, le lien est déjà en place.
Étape 4 : lancer certbot --apache pour obtenir et installer le certificat
Lancez certbot avec le module Apache. Il demande le certificat, prouve que vous contrôlez les domaines et modifie la configuration d’Apache à votre place :
sudo certbot --apache
Pour éviter le menu des domaines, nommez-les directement dans la commande :
sudo certbot --apache -d example.ca -d www.example.ca
Le premier lancement pose quelques questions :
Une adresse courriel pour votre compte Let’s Encrypt. Let’s Encrypt a cessé d’envoyer les rappels d’expiration par courriel le 4 juin 2025 (page en anglais) ; ne comptez donc pas sur cette adresse pour vous avertir d’un renouvellement raté.
Les conditions d’utilisation de Let’s Encrypt. Vous devez les accepter pour continuer.
Le partage de votre courriel avec l’EFF, l’organisme sans but lucratif qui développe certbot. Cette question est facultative.
Les noms à sécuriser. Certbot affiche les valeurs
ServerNameetServerAliastrouvées. Laissez la réponse vide pour tout sélectionner, ce qu’il faut pourexample.caetwww.example.ca.
Quand le défi réussit, certbot affiche un résultat semblable à celui-ci (sortie abrégée) :
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.ca/fullchain.pem
Key is saved at: /etc/letsencrypt/live/example.ca/privkey.pem
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for example.ca to /etc/apache2/sites-available/000-default-le-ssl.conf
Successfully deployed certificate for www.example.ca to /etc/apache2/sites-available/000-default-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://example.ca and https://www.example.ca
Certbot écrit un nouvel hôte virtuel pour le port 443, le fichier qui se termine par -le-ssl.conf, à côté de l’original. Avec --apache, certbot redirige aussi tout le trafic HTTP vers HTTPS par défaut ; ajoutez --no-redirect si vous devez garder le HTTP simple. Ces deux comportements figurent dans le guide d’utilisation de certbot (en anglais).
Étape 5 : tester le renouvellement automatique avec certbot renew --dry-run
Le renouvellement est automatique : le snap de certbot installe une minuterie systemd qui lance certbot renew pour vous. Testez-la une fois, pour savoir qu’un vrai renouvellement fonctionnera :
sudo certbot renew --dry-run
Un essai à blanc passe par le service de test de Let’s Encrypt et ne change rien sur votre serveur. Pour voir la minuterie elle-même :
systemctl list-timers | grep certbot
Avec l’installation snap, la minuterie s’appelle snap.certbot.renew.timer. Certbot renouvelle un certificat quand il reste moins du tiers de sa durée de vie, selon la documentation de renouvellement de certbot.
Cette règle compte, car les durées raccourcissent. Les certificats Let’s Encrypt durent 90 jours aujourd’hui. Selon les changements à venir de Let’s Encrypt, les nouveaux certificats dureront 64 jours à partir du 10 février 2027, puis 45 jours à partir du 16 février 2028. Si l’essai à blanc réussit, vous n’avez rien à changer pour ces deux dates.
Étape 6 : vérifier le HTTPS dans un navigateur
Ouvrez https://example.ca et https://www.example.ca. Les deux doivent s’afficher avec le cadenas, sans avertissement. Vérifiez ensuite la redirection depuis le serveur :
curl -I http://example.ca
La réponse doit être un 301 Moved Permanently avec l’en-tête Location: https://example.ca/. Si votre site tourne sous WordPress, changez aussi l’adresse web de WordPress et l’adresse web du site en https:// dans Réglages, puis Général, comme l’explique notre guide pour installer WordPress sur un VPS Ubuntu.
Questions fréquentes
Un certificat SSL obtenu avec certbot est-il gratuit ?
Oui. Certbot est un logiciel libre de l’EFF, et Let’s Encrypt ne facture pas ses certificats. Le seul coût est celui du serveur.
Pourquoi certbot échoue-t-il au défi ?
Les causes habituelles sont un enregistrement DNS qui pointe encore vers un autre serveur, le port 80 bloqué par un pare-feu ou un groupe de sécurité infonuagique, ou un hôte virtuel Apache sans ServerName correspondant. Corrigez la cause en jeu, puis relancez sudo certbot --apache.
Certbot --apache peut-il émettre un certificat générique (wildcard) ?
Non. Un certificat générique comme *.example.ca exige le défi DNS-01, et le module Apache utilise HTTP-01. Pour couvrir un ou deux sous-domaines de plus, ajoutez-les plutôt à votre certificat existant avec certbot.
Ces étapes fonctionnent-elles sur Debian ?
Oui. Les instructions snap de certbot sont les mêmes sur toute distribution Linux avec snapd, et l’Apache de Debian utilise la même structure sites-available qu’Ubuntu. Debian n’installe pas snapd par défaut : faites donc l’étape 1.
Faut-il un VPS pour utiliser certbot ?
Il faut un accès root ou sudo au serveur, ce que l’hébergement mutualisé offre rarement. Cet accès est une des raisons de passer le site d’une entreprise sur un VPS.
Besoin d’aide avec le SSL de votre serveur ? Parlez à msmtech.