Passer au contenu principal

VPS : Installer Certbot sur Linux

Ce guide a été créé avec les produits suivants :

(Les détails peuvent varier selon les produits de différents fournisseurs, mais les concepts principaux restent les mêmes)

Introduction

Les certificats SSL sont des éléments essentiels d’internet, garantissant que les données peuvent être transmises en toute sécurité entre le client et l’hôte. Dans ce guide, nous allons explorer le processus d’installation de l’outil open-source Certbot pour demander des certificats SSL gratuits auprès de l’autorité de certification à but non lucratif Let's Encrypt.

Préparation

Pour utiliser Certbot, vous aurez besoin d’un serveur Linux et d’un domaine que vous possédez. Vous devez avoir accès aux paramètres DNS du domaine et vous devez créer un enregistrement DNS A pointant vers l’adresse IP de votre serveur Linux pour chaque domaine racine ou sous-domaine que vous souhaitez utiliser.

Certbot propose aussi des plugins supplémentaires qui vous permettent d’installer un certificat en "un clic" pour un domaine, compatible avec plusieurs serveurs web comme Nginx ou Apache. Nous recommandons d’utiliser Nginx, car c’est un serveur web open-source très performant et populaire. Consultez notre guide proxy inverse Linux pour vous aider à le configurer.

Installation

Commencez par installer le paquet open-source Certbot, que vous utiliserez pour demander des certificats SSL gratuits auprès de Let's Encrypt.

sudo apt install certbot

Une fois Certbot installé, vous pouvez demander des certificats pour votre ou vos domaines. Let's Encrypt et Certbot proposent plusieurs défis ACME pour vérifier la propriété du domaine.

Nous recommandons vivement d’utiliser la méthode par défaut HTTP-01 car elle permet un renouvellement automatique. Cependant, si vous rencontrez des problèmes, vous pouvez essayer la méthode DNS-01 en alternative, qui est manuelle et ne supporte pas le renouvellement automatique car elle repose sur la vérification via un enregistrement DNS TXT.

Utilise les plugins serveurs web

Pour les utilisateurs d’un serveur web comme Nginx, Apache ou un serveur web personnalisé, nous recommandons de passer à la section Plugins serveurs web ci-dessous qui montre comment utiliser les plugins Certbot pour ces serveurs afin de bénéficier d’une installation "en un clic" et de demander des certificats sans devoir arrêter le serveur web.

Défi HTTP-01

Avec Certbot installé, vous pouvez maintenant demander des certificats pour votre ou vos domaines. Dans cet exemple, nous utiliserons le mode standalone, ce qui signifie que Certbot va démarrer un serveur web temporaire pour effectuer les actions nécessaires. Cela implique que vous devez ouvrir le port 80 dans vos règles de pare-feu et ne pas avoir de serveur web ou service existant utilisant le port 80, afin que le serveur temporaire puisse démarrer et permettre la récupération du défi (d’où le HTTP dans le nom du défi).

Dans la commande suivante, vous utiliserez le paramètre --standalone pour indiquer à Certbot que vous souhaitez utiliser l’option serveur web temporaire.

# Pour les domaines racines
certbot certonly --standalone -d [votre_domaine_racine] -d www.[votre_domaine_racine]

# Pour les sous-domaines
certbot certonly --standalone -d [votre_domaine]

# Installation interactive
certbot certonly --standalone

Une fois la commande lancée, il se peut que vous deviez suivre une configuration interactive initiale qui vous demandera une adresse email pour les communications liées au certificat, suivie d’une liste de diffusion optionnelle et des conditions générales que vous devez accepter.

Certbot va maintenant générer un défi ACME et l’héberger via le serveur web temporaire. Les serveurs de Let's Encrypt tenteront alors de récupérer ce défi depuis votre serveur et, en cas de succès, les certificats seront créés et sauvegardés dans le chemin /etc/letsencrypt/live/[votre_domaine].

Vous pouvez maintenant utiliser les certificats SSL où vous le souhaitez simplement en fournissant le chemin local vers les certificats.

Enregistrement DNS TXT

Si vous rencontrez des difficultés à vérifier votre domaine via la méthode HTTP-01, vous pouvez essayer la méthode DNS-01 qui consiste à créer un enregistrement DNS TXT avec une valeur fournie par Let's Encrypt.

Comme mentionné précédemment, cette méthode ne supporte pas le renouvellement automatique à moins que vous ne mettiez en place votre propre infrastructure pour gérer cela. Il est donc fortement recommandé d’utiliser la méthode HTTP-01 quand c’est possible.

Dans la commande suivante, vous utiliserez le paramètre --preferred-challenges pour indiquer à Certbot que vous souhaitez utiliser la méthode DNS-01.

# Pour les domaines racines
certbot certonly --preferred-challenges dns-01 -d [votre_domaine_racine] -d www.[votre_domaine_racine] --manual -m [votre_email] -m www.[votre_email]

# Pour les sous-domaines
certbot certonly --preferred-challenges dns-01 -d [votre_domaine] --manual -m [votre_email]

# Installation interactive
certbot certonly --preferred-challenges dns-01

Une fois la commande lancée, vous devrez suivre une configuration interactive initiale qui vous demandera une adresse email pour les communications liées au certificat, suivie d’une liste de diffusion optionnelle et des conditions générales que vous devez accepter.

Certbot vous fournira alors des instructions pour créer un enregistrement DNS TXT avec une valeur spécifique à utiliser. La cible sera généralement _acme-challenge. préfixé à votre domaine (dans cet exemple, ce serait _acme-challenge.zapdocs.example.com) et la valeur à définir sera indiquée dans la console.

Une fois l’enregistrement créé, appuyez sur Entrée pour continuer. Si tout est correct et propagé, les certificats seront créés et sauvegardés dans le chemin /etc/letsencrypt/live/[votre_domaine].

note

Soyez patient, car les modifications des enregistrements DNS peuvent prendre un certain temps à se propager. Cela se produit généralement en quelques minutes, mais dans de rares cas, cela peut prendre plus longtemps.

Vous pouvez maintenant utiliser les certificats SSL où vous le souhaitez simplement en fournissant le chemin local vers les certificats.

Plugins serveurs web

Certbot propose plusieurs plugins supplémentaires pour serveurs web qui rendent la gestion des certificats encore plus simple, car ils modifient automatiquement les blocs serveur concernés. Pour utiliser un plugin, il suffit d’ajouter le paramètre correspondant à votre commande certbot.

Ces méthodes utilisent toutes la validation HTTP-01 et fonctionnent de manière similaire. Lorsqu’un plugin est utilisé, Certbot recherche d’abord le bloc serveur correspondant qui inclut le domaine demandé dans le paramètre server_name. Une fois trouvé, Certbot génère un défi ACME et ajoute un bloc temporaire location /.well-known/acme-challenge/... dans la configuration du bloc serveur.

Les serveurs de Let's Encrypt tenteront alors de récupérer ce défi depuis votre serveur et, en cas de succès, votre certificat sera généré et la configuration du bloc serveur pour le serveur web sélectionné sera automatiquement modifiée pour passer en HTTPS (port 443) et pour pointer vers les nouveaux certificats générés.

Plugin Nginx

Avant d’utiliser le plugin, assurez-vous qu’il est installé.

sudo apt install python3-certbot-nginx

Pour utiliser le plugin Nginx, vous devez ajouter le paramètre --nginx dans votre commande comme suit.

# Pour les domaines racines
certbot --nginx -d [votre_domaine_racine] -d www.[votre_domaine_racine]

# Pour les sous-domaines
certbot --nginx -d [votre_domaine]

# Installation interactive
certbot --nginx
astuce

Si vous souhaitez désactiver les modifications automatiques "en un clic" des blocs serveur par Certbot, vous pouvez ajouter le paramètre certonly dans la commande, par exemple certbot certonly.

Renouvellement automatique

Dans la plupart des cas, Certbot configure automatiquement le renouvellement des certificats via un cronjob et/ou un timer systemd. Vous pouvez vérifier cela en lançant la commande suivante qui utilise le paramètre --dry-run pour tester le processus.

certbot renew --dry-run
astuce

Comme mentionné précédemment, la méthode DNS-01 ne supporte pas le renouvellement automatique via Certbot, sauf si vous mettez en place votre propre infrastructure pour gérer cela. Il est donc fortement recommandé d’utiliser la méthode HTTP-01.

Cette commande devrait réussir si tout est en ordre. Si vous souhaitez consulter ou modifier le renouvellement automatique, la commande se trouve dans l’un des emplacements suivants : /etc/crontab/, /etc/cron.*/* ou via systemctl list-timers.

Configuration manuelle du cronjob

Si pour une raison quelconque le renouvellement automatique n’est pas configuré, vous pouvez l’ajouter vous-même via un cronjob. Ouvrez le menu crontab avec crontab -e. Si c’est la première fois que vous faites cela, il vous sera demandé de choisir un éditeur. Sélectionnez la première option, qui devrait être /bin/nano.

Avec le fichier ouvert dans nano, ajoutez simplement la ligne suivante pour lancer le renouvellement tous les jours à 6h du matin heure locale.

0 6 * * * certbot renew

Sauvegardez le fichier et quittez nano en utilisant CTRL + X, puis Y pour confirmer et enfin ENTRÉE.

Conclusion

Vous avez configuré avec succès Certbot pour votre ou vos domaines via plusieurs méthodes, y compris standalone, webroot ou via un des plugins, offrant à votre site une transmission de données sécurisée via HTTPS. Pour toute question ou assistance, n’hésitez pas à contacter notre équipe support, disponible tous les jours pour vous aider ! 🙂