Dans cet article, nous explorerons le processus d'installation et de configuration Certbot sur un serveur Linux. Nous vous expliquerons en détail comment obtenir un certificat SSL/TLS Let's Encrypt pour votre domaine. Nous expliquerons également comment l'installer sur un serveur web (tel que Nginx ou Apache) et configurer le renouvellement automatique des certificats pour garantir une connexion sécurisée et continue à votre ressource web.
Certbot est un outil gratuit et open source conçu pour l'acquisition et le renouvellement automatiques de Certificats SSL/TLSIl joue un rôle crucial dans la sécurisation de la connexion entre le serveur et le client, protégeant ainsi les données contre tout accès non autorisé. Certbot simplifie l'installation et le renouvellement d'un certificat SSL. Non seulement le certificat renforce la sécurité, mais il renforce également la confiance des utilisateurs envers votre ressource web, améliorant ainsi la réputation du site et son classement dans les moteurs de recherche.
Installation de Certbot
Certbot est inclus par défaut dans la plupart des distributions, donc pour l'installer sur Debian / Ubuntu systèmes, il vous suffit de mettre à jour la liste des paquets :
apt update
Ensuite, lancez le processus d’installation :
apt install certbot
Certbot prend en charge des plugins facilitant la configuration du certificat d'un serveur web. Pour installer ces plugins, utilisez la commande correspondante :
apt install certbot python3-certbot-nginx # for Nginx
apt install certbot python3-certbot-apache # for Apache
Le processus d'installation de Red Hat systèmes (tels que RHEL, CentOS, Fedora) est légèrement différent. Vous devez d'abord ajouter le dépôt EPEL :
yum install epel-release
Ensuite, installez l’outil :
yum install certbot
De même, il existe une option permettant de sélectionner un plugin pour un serveur Web spécifique :
yum install python3-certbot-nginx # for Nginx
yum install python3-certbot-apache # for Apache
Après l'installation, vous pouvez immédiatement procéder à l'obtention du certificat.
Obtention d'un certificat SSL
Dans cette section, nous aborderons le processus d'obtention d'un certificat indépendamment d'un serveur web spécifique, puis nous décrirons le processus d'installation du certificat pour Nginx et Apache. Cependant, il est essentiel de comprendre au préalable la syntaxe et les fonctionnalités du programme. Voici son schéma :
certbot command option -d domain
Les commandes principales incluent :
certbot certonly - Récupère le certificat mais ne l'installe pas.certbot certificates - Cette commande affiche une liste de tous les certificats installés.certbot renew - Étend le certificat existant.certbot revoke - Révoque le certificat existant.certbot delete - Supprime le certificat existant.
Les options les plus couramment utilisées sont :
--nginx - Utilise les scripts de configuration Nginx pour la vérification du domaine.--apache - Utilise les scripts de configuration Apache pour la vérification du domaine.-d - Une liste des domaines pour lesquels le certificat est demandé.--standalone - Utilise le mode autonome pour la vérification du domaine.--manual - Effectue une vérification manuelle du domaine.
Ceci n'est qu'un exemple des commandes et options les plus courantes. Vous pouvez consulter la liste complète des fonctionnalités du programme dans la section Aide :
certbot –help
Nous allons maintenant procéder à l'obtention du certificat. À titre d'exemple, nous allons obtenir un certificat pour un serveur virtuel pour un domaine de troisième niveau gratuit comme votrenomd'utilisateur.pserver.space
Tout d’abord, vous devez entrer la commande :
certbot certonly
En réponse, l'utilitaire vous demandera de choisir une méthode pour vérifier la propriété du domaine :
La première option est pratique si vous n'avez pas de serveur web configuré ou si vous ne souhaitez pas modifier un serveur existant. Cette méthode crée un serveur web temporaire pour confirmer vos droits sur le domaine. Elle est idéale pour une configuration simple et rapide. Si vous choisissez cette méthode, il est important de laisser le port 80 libre.
La deuxième option est préférable si vous disposez déjà d'un serveur web et souhaitez l'utiliser pour vérifier les droits d'accès au domaine. Certbot place des fichiers spéciaux dans un dossier de votre serveur, qui sont ensuite vérifiés par le centre de certification.
Choisissez la première option et cliquez sur « Suivant ». À ce stade, vous devrez :
- Entrez une adresse e-mail ;
- Accepter les conditions d'utilisation ;
- Accepter ou refuser de recevoir des courriers électroniques au nom de la société et de ses partenaires ;
- Spécifiez le nom de domaine pour lequel le certificat est émis.
Après avoir terminé le processus d'émission du certificat avec l'outil Certbot, celui-ci indiquera le chemin d'accès au répertoire où sont stockés le certificat émis et les données de votre compte :
Il ne vous reste plus qu'à lier le certificat obtenu au service souhaité.
Installation du certificat pour Nginx ou Apache
Cette section suppose que certaines conditions fondamentales sont remplies :
- Vous avez déjà installé et configuré un serveur web, Nginx ou Apache. Il doit être accessible depuis Internet via le nom de domaine pour lequel vous souhaitez obtenir le certificat ;
- Lors de l'installation de l'outil, vous avez également installé un plugin pour Nginx ou Apache à l'aide de la commande appropriée ;
- Le pare-feu autorise les connexions sur les ports 80 et 443. Si ces ports sont fermés, le service sera indisponible pour les connexions entrantes. Pour plus de détails sur le fonctionnement du pare-feu, consultez l'article sur configurer un pare-feu sous Linux.
Une fois toutes les conditions remplies, vous pouvez procéder directement à l'émission du certificat. Nous allons prendre comme exemple l'obtention d'un certificat SSL sur un serveur utilisant Nginx. Cependant, si vous utilisez un serveur web Apache, le processus est identique.
Pour obtenir le certificat, vous devez entrer la commande :
certbot --nginx # for Nginx
certbot --apache # for Apache
En réponse, l'outil demandera : une adresse e-mail, le consentement aux conditions d'utilisation du service Let's Encrypt et l'autorisation d'envoyer des e-mails au nom du service et de ses partenaires.
Ensuite, vous devrez spécifier le nom de domaine pour lequel le certificat est émis. Certbot peut automatiquement déterminer le domaine s'il a été spécifié dans le certificat. nom du serveur champ pour Nginx configuration ou Nom du serveur et ServerAlias pour ApacheSi ce n'est pas le cas, le programme vous avertira et vous demandera de saisir le nom de domaine manuellement. L'utilitaire vous demandera ensuite si vous souhaitez activer la redirection des requêtes HTTP vers HTTPS. Pour configurer la redirection automatique, choisissez la deuxième option :
Après un certain temps, Certbot vous informera de l'obtention du certificat pour le domaine spécifié. À partir de ce moment, toutes les connexions entrantes seront redirigées du port 80 vers le port 443. L'outil affichera les répertoires contenant toutes les données du certificat et les informations du compte Let's Encrypt :
Le message précisera également la période de validité du certificat obtenu et les options importantes pour la gestion de tous les certificats actifs :
- certainementCette option permet d'obtenir ou de mettre à jour le certificat sans configuration automatique du serveur web. Certbot se contente de demander ou de mettre à jour le certificat, sans modifier automatiquement la configuration du serveur. Auparavant, nous utilisions cette option pour obtenir un certificat sans être lié à un serveur web.
- renouveler Permet le renouvellement automatique de tous les certificats obtenus via Certbot et en cours de validité. Le programme vérifie tous les certificats et, si l'un d'entre eux expire dans les 30 jours ou moins, il est automatiquement renouvelé.
Dans la suite des instructions, nous verrons comment configurer le renouvellement automatique des certificats sans intervention de l'utilisateur tous les trois mois.
Renouvellement automatique des certificats dans Certbot
Pour Debian/Ubuntu
Sur ces systèmes d'exploitation, Certbot ajoute automatiquement un script à la liste des tâches pour le renouvellement automatique des certificats installés. Vous pouvez vérifier le fonctionnement du script avec la commande suivante :
systemctl status certbot.timer
La réponse affichera l'état du service, ainsi que le répertoire contenant le fichier de configuration. Vous pouvez l'ouvrir avec n'importe quel éditeur de texte. Si vous n'avez pas l'habitude des éditeurs de texte sous Linux, nous vous recommandons de vous familiariser avec notre aperçu des solutions les plus populaires. Dans ce cas, nous utiliserons nano :
nano /lib/systemd/system/certbot.timer
Tous les paramètres importants sont mis en évidence :
- L'horaire indique que le service fonctionnera deux fois par jour à 00h00 et 12h00 ;
- Une deuxième valeur indique un délai aléatoire en secondes qui sera ajouté au démarrage du minuteur. Dans ce cas, il est de 43,200 12 secondes (XNUMX heures), ce qui rend le lancement plus aléatoire et répartit la charge.
- Ce paramètre garantit que si le minuteur devait être exécuté lors d'un arrêt du système, il sera activé immédiatement au démarrage.
Vous pouvez également exécuter une vérification forcée du renouvellement du certificat avec la commande :
certbot renew --dry-run
Avec cette commande, les certificats ne seront pas mis à jour. L'outil effectuera des actions similaires à celles utilisées pour l'obtention d'un certificat à son expiration. Vous pourrez ainsi garantir le bon fonctionnement du service en matière de renouvellement automatique.
Pour CentOS, Fedora et autres
Le processus d'activation des mises à jour automatiques sur les systèmes de la famille Red Hat diffère légèrement. Contrairement à Debian/Ubuntu, pour CentOS et d'autres systèmes, vous devez ajouter manuellement une tâche au planificateur. Pour cela, nous utiliserons l'option cron outil:
crontab -e
Ensuite, dans le fichier qui s’ouvre, ajoutez la ligne suivante :
0 12 * * * /usr/bin/certbot renew --quiet
Décomposons les principaux arguments de la commande :
- L'heure d'exécution. Dans ce cas, la commande s'exécutera automatiquement à 12h00 chaque jour ;
- La commande pour renouveler les certificats SSL/TLS à l'aide de Certbot ;
- Le --silencieux Le drapeau supprime la sortie, rendant le processus plus caché et moins intrusif dans les journaux système ou l'affichage.
Après avoir ajouté la commande, vous devez enregistrer les modifications dans le fichier.
Tout comme avec Debian/Ubuntu, vous pouvez également lancer une vérification forcée des renouvellements de certificats :
certbot renew --dry-run
Le résultat d’une exécution réussie de la commande se présente comme suit :
Conclusion
Nous avons exploré le processus complet d'installation et de configuration de Certbot sur un serveur Linux. En suivant les instructions fournies, vous pourrez obtenir un certificat SSL/TLS auprès de Let's Encrypt, l'installer sur votre serveur web et configurer le renouvellement automatique pour garantir une protection continue et une confiance accrue envers votre ressource web. Avec Certbot, créez facilement un environnement fiable et sécurisé pour vos utilisateurs.