Retour sur : Guides sur la technologie

Comment ajouter un sous-domaine à un certificat existant utilisant certbot

Pour ajouter un sous-domaine à un certificat existant avec certbot, lancez certbot avec --cert-name réglé sur le nom du certificat et -d suivi de tous les domaines qu’il doit couvrir, anciens et nouveaux : sudo certbot --apache --cert-name example.ca -d example.ca,www.example.ca,staging.example.ca. Certbot remplace le certificat par un certificat qui couvre les trois noms.

Ce guide suppose que certbot a déjà émis un certificat Let’s Encrypt sur votre serveur Apache. Si vous n’en avez pas encore, commencez par notre guide pour installer un certificat SSL avec certbot sur Ubuntu et Apache. Les commandes suivent le guide d’utilisation de certbot (en anglais), en date de novembre 2026.

Dans notre exemple, le certificat couvre example.ca et www.example.ca, et nous voulons ajouter staging.example.ca, une copie de préproduction du site servie depuis un autre dossier du même serveur.

Étape 1 : trouver le nom du certificat et ses domaines

Listez les certificats gérés par certbot. Chacun a un nom, que vous passez à --cert-name, et une liste de domaines :

sudo certbot certificates

Le résultat ressemble à ceci (abrégé) :

Found the following certs: Certificate Name: example.ca Domains: example.ca www.example.ca Certificate Path: /etc/letsencrypt/live/example.ca/fullchain.pem Private Key Path: /etc/letsencrypt/live/example.ca/privkey.pem

Notez le nom du certificat (example.ca) et copiez la liste complète des domaines. Vous aurez besoin des deux à l’étape 3.

Étape 2 : faire pointer le sous-domaine vers le serveur et lui donner un hôte virtuel

Certbot ne peut ajouter qu’un sous-domaine qui atteint déjà votre serveur. Avant de le lancer, vérifiez deux choses :

  • DNS : un enregistrement A (et AAAA pour l’IPv6) pour staging.example.ca pointe vers le serveur. dig +short staging.example.ca doit afficher l’adresse IP du serveur.

  • Apache : un bloc <VirtualHost *:80> avec ServerName staging.example.ca est activé, pour que le module Apache réussisse le défi HTTP-01 sur le port 80 et sache où installer le certificat.

Si le sous-domaine n’a pas encore d’hôte virtuel, suivez d’abord notre guide pour configurer un sous-domaine sur le même serveur Apache.

Étape 3 : ajouter le sous-domaine avec certbot --cert-name

Lancez certbot avec le nom du certificat et la liste complète des domaines, les anciens plus le nouveau sous-domaine :

sudo certbot --apache --cert-name example.ca -d example.ca,www.example.ca,staging.example.ca

Certbot prouve le contrôle de chaque nom, remplace le certificat example.ca par un certificat qui contient les trois, et le déploie dans les hôtes virtuels Apache correspondants. Les chemins sous /etc/letsencrypt/live/example.ca/ ne changent pas : le reste de votre configuration continue de fonctionner.

La liste -d est la nouvelle liste complète, pas un ajout. Le guide de certbot sur la modification des domaines d’un certificat montre la même option qui retire un domaine absent de la liste. Si vous oubliez www.example.ca ici, il disparaît du certificat.

Comment fonctionne certbot --expand ?

--expand ajoute aussi des noms à un certificat existant, mais seulement si vous listez tous les domaines qu’il contient déjà, plus les nouveaux. La commande équivalente est :

sudo certbot --apache --expand -d example.ca,www.example.ca,staging.example.ca

La documentation de certbot recommande plutôt --cert-name, parce que cette option nomme le certificat visé et peut retirer des domaines autant qu’en ajouter. N’utilisez --expand que si un script en dépend déjà.

La première version de ce guide utilisait sudo certbot -d staging.example.ca --expand. Cette commande ne touche pas au certificat example.ca : comme la liste staging.example.ca seule n’englobe aucun certificat existant, certbot émet un certificat distinct nommé staging.example.ca. La sortie de certbot certificates que nous montrions alors le prouvait, avec trois certificats distincts au lieu d’un.

Étape 4 : confirmer que le sous-domaine figure sur le certificat

Listez de nouveau les certificats. L’entrée example.ca doit maintenant afficher les trois domaines :

sudo certbot certificates

Certificate Name: example.ca Domains: example.ca www.example.ca staging.example.ca

Testez ensuite le renouvellement et ouvrez https://staging.example.ca dans un navigateur. La page doit s’afficher avec le cadenas, sans avertissement.

sudo certbot renew --dry-run

Faut-il étendre le certificat ou en émettre un distinct ?

Étendez le certificat quand le sous-domaine vit sur le même serveur et va y rester. Émettez un certificat distinct s’il risque de déménager. Appliquez cette règle :

  • Même serveur, même responsable (préproduction, boutique, pages d’aide) : ajoutez-le au certificat principal avec --cert-name. Un certificat, un renouvellement.

  • Le sous-domaine pourrait passer à un autre serveur ou à une autre équipe : donnez-lui son propre certificat avec sudo certbot --apache -d staging.example.ca, pour qu’un déménagement n’oblige pas à modifier le certificat principal.

  • Beaucoup de sous-domaines : un certificat générique (*.example.ca) les couvre tous, mais il exige le défi DNS-01 et un module DNS, pas --apache.

Tous les noms d’un certificat sont visibles par quiconque l’inspecte. Si vous préférez ne pas afficher staging.example.ca sur le certificat du site principal, émettez-le à part.

Comment supprimer un certificat de sous-domaine en double

Si vous avez lancé l’ancienne commande --expand et avez maintenant un certificat distinct staging.example.ca en plus du certificat example.ca étendu, supprimez le doublon. Assurez-vous d’abord qu’Apache n’y fait plus référence, comme l’exigent les étapes de suppression sécuritaire de certbot :

sudo grep -R live/staging.example.ca /etc/apache2

Si la commande n’affiche rien, supprimez le certificat. Si elle affiche un fichier, remplacez d’abord les lignes SSLCertificateFile et SSLCertificateKeyFile de ce fichier par les chemins de example.ca, puis rechargez Apache.

sudo certbot delete --cert-name staging.example.ca

La suppression d’un certificat est irréversible ; c’est pourquoi la vérification vient en premier.

Questions fréquentes

Ajouter un sous-domaine change-t-il la date d’expiration du certificat ?

Oui. Certbot demande un nouveau certificat pour la liste complète des noms, donc la durée de vie repart du jour de l’ajout. Le renouvellement automatique continue comme avant.

Combien de domaines un certificat Let’s Encrypt peut-il contenir ?

Jusqu’à 100 noms, selon le profil de certificat, d’après les limites de Let’s Encrypt. Pour quelques sous-domaines sur un même serveur, un seul certificat est plus simple à gérer.

Peut-on retirer un domaine d’un certificat avec certbot ?

Oui. Relancez la même commande --cert-name avec une liste -d plus courte. Certbot émet un certificat qui ne contient que les noms listés.

Peut-on ajouter un sous-domaine sans que certbot modifie les fichiers Apache ?

Oui. Utilisez sudo certbot certonly --apache --cert-name example.ca -d example.ca,www.example.ca,staging.example.ca. Certbot met le certificat à jour sans toucher à la configuration d’Apache ; rechargez ensuite Apache avec sudo systemctl reload apache2.

S’il vous faut encore un nom de domaine pour y rattacher des sous-domaines, WHC vend des domaines .ca et autres depuis le Canada. Vous hébergez plus d’un site sur un serveur ? Nos guides pour installer WordPress sur un VPS Ubuntu et pourquoi les entreprises choisissent un VPS couvrent le reste de la configuration.

Besoin d’aide avec les certificats de votre serveur ? Parlez à msmtech.

Aucune solution sur étagère? On la construit.