Pour une explication détaillée du fonctionnement du défi Let's Encrypt DNS-01 (ou validation DNS), lisez l'article intitulé Qu'est-ce que le défi Let's Encrypt DNS-01 et comment l'utiliser pour obtenir les certificats SSL.
Dans cet article, nous allons vous montrer comment utiliser la validation DNS Let's Encrypt pour obtenir un certificat SSL pour votre nom de domaine à l'aide du plugin DNS Certbot et Certbot CloudFlare.
Sujet du contenu :
- Gérer votre domaine avec CloudFlare DNS
- Installation de Certbot et du plugin Certbot CloudFlare sur Ubuntu/Debian
- Installation de Certbot et du plugin Certbot CloudFlare sur Fedora
- Installation de Certbot et du plug-in Certbot CloudFlare sur RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Vérifier si Certbot et le plugin Certbot CloudFlare sont correctement installés
- Générer un jeton API CloudFlare
- Stockage sécurisé du jeton API CloudFlare sur l'ordinateur/le serveur
- Génération d'un certificat SSL à l'aide de la validation DNS Certbot CloudFlare
- Liste des certificats SSL Let's Encrypt à l'aide de Certbot
- Renouveler les certificats SSL Let's Encrypt à l'aide de Certbot
- Conclusion
- Les références
Gérer votre domaine avec CloudFlare DNS
Pour obtenir un certificat SSL Let's Encrypt à l'aide de la validation DNS CloudFlare, vous devez disposer d'un compte CloudFlare et votre domaine doit utiliser le DNS CloudFlare. Tu peux créer un compte CloudFlare gratuitement et le service DNS CloudFlare est également gratuit.
Pour gérer votre domaine avec CloudFlare DNS, vous pouvez effectuer l'une des opérations suivantes :
- Enregistrez votre domaine depuis CloudFlare
- Transférez votre domaine vers CloudFlare
- Remplacez le serveur de noms DNS de votre nom de domaine par le serveur de noms DNS CloudFlare depuis le tableau de bord de votre registraire de domaine.
Vous n'avez pas besoin d'acheter un domaine auprès de CloudFlare ou de transférer un domaine vers CloudFlare pour le gérer avec le service DNS CloudFlare. Vous pouvez simplement changer le serveur de noms de votre domaine en serveur de noms DNS CloudFlare à partir du tableau de bord de votre registraire de domaine (où vous avez acheté le domaine) et gérer votre domaine depuis CloudFlare. Pour plus d'informations sur le remplacement du serveur de noms de votre domaine par le serveur de noms DNS CloudFlare, lisez cet article.
Installation de Certbot et du plugin Certbot CloudFlare sur Ubuntu/Debian
Les plugins Certbot et Certbot CloudFlare sont disponibles dans le référentiel de packages officiel d'Ubuntu/Debian. Vous pouvez donc les installer sur Ubuntu/Debian très facilement.
Tout d’abord, mettez à jour le cache du référentiel du package APT avec la commande suivante :
$ sudo mise à jour appropriée
Pour installer le plugin DNS Certbot et Certbot CloudFlare, exécutez la commande suivante :
$ sudo apte installer certbot python3-certbot-dns-cloudflare Pour confirmer l'installation, appuyez sur « Y » puis appuyez sur
Les plugins Certbot et Certbot CloudFlare DNS sont en cours d'installation. Cela prend un certain temps pour terminer.
À ce stade, le plugin DNS Certbot et Certbot CloudFlare doit être installé.
Installation de Certbot et du plugin Certbot CloudFlare sur Fedora
Les plugins Certbot et Certbot CloudFlare sont disponibles dans le référentiel de packages officiel de Fedora et peuvent être installés sur Fedora très facilement.
Tout d’abord, mettez à jour la base de données du package DNF avec la commande suivante :
$ sudo dnf makecache
Pour installer le plugin DNS Certbot et Certbot CloudFlare sur Fedora, exécutez la commande suivante :
$ sudo dnf installer certbot python3-certbot-dns-cloudflare Pour confirmer l'installation, appuyez sur « Y » puis appuyez sur
Les plugins Certbot et Certbot CloudFlare DNS sont en cours d'installation. Cela prend un certain temps pour terminer.
À ce stade, les plugins Certbot et Certbot CloudFlare DNS doivent être installés sur Fedora.
Installation de Certbot et du plug-in Certbot CloudFlare sur RHEL/AlmaLinux/Rocky Linux/CentOS Stream
Le plugin Certbot CloudFlare DNS n'est pas disponible dans les référentiels de packages officiels de RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Le plugin Certbot CloudFlare DNS est disponible dans le référentiel de packages EPEL. Vous pouvez activer le référentiel de packages EPEL sur RHEL/AlmaLinux/Rocky Linux/CentOS Stream et installer le plugin DNS Certbot CloudFlare à partir de là.
Une fois que vous avez activé le référentiel de packages EPEL, mettez à jour le cache de la base de données DNF avec la commande suivante :
$ sudo dnf makecache
Ensuite, installez le plugin DNS Certbot et Certbot CloudFlare sur votre système RHEL/AlmaLinux/Rocky Linux/CentOS Stream avec la commande suivante :
$ sudo dnf installer certbot python3-certbot-dns-cloudflare Pour confirmer l'installation, appuyez sur « Y » puis appuyez sur
Les plugins Certbot et Certbot CloudFlare DNS sont en cours d'installation. Cela prend un certain temps pour terminer.
Pour accepter la clé GPG du référentiel EPEL, appuyez sur « Y » puis appuyez sur
À ce stade, le plugin DNS Certbot et Certbot CloudFlare doit être installé.
Vérifier si Certbot et le plugin Certbot CloudFlare sont correctement installés
Pour vérifier si Certbot est installé sur votre ordinateur, exécutez la commande suivante :
$ robot de certification --versionSi Certbot est installé, la commande doit imprimer le numéro de version du Certbot installé sur votre ordinateur.
Comme vous pouvez le voir, Certbot 2.1.0 est installé sur notre machine Debian.
Pour vérifier si le plugin Certbot CloudFlare DNS est installé sur votre ordinateur, exécutez la commande suivante :
$ sudo plugins certbotSi le plugin DNS Certbot CloudFlare est installé, vous devriez trouver le « dns-cloudflare » dans la liste des plugins comme indiqué dans la capture d'écran suivante :
Générer un jeton API CloudFlare
Pour vérifier la propriété du domaine, Certbot doit ajouter un enregistrement TXT sur le domaine géré par le serveur DNS CloudFlare. Pour cela, Certbot a besoin d'accéder au jeton API CloudFlare. Vous pouvez créer un jeton API pour votre domaine à partir du tableau de bord CloudFlare.
Tout d’abord, connectez-vous à votre compte CloudFlare. Ensuite, cliquez sur l'icône de votre profil
> Mon profil dans le coin supérieur droit de la page.
Accédez à la section « Jetons API » [1] et cliquez sur « Créer un jeton » [2] .
Cliquez sur « Utiliser le modèle » dans la section « Modifier le DNS de la zone ».
Dans la section « Autorisation », autorisez l'autorisation « Modifier » sur « Zone DNS » en sélectionnant les options marquées dans les menus déroulants.
Si vous gérez plusieurs domaines avec CloudFlare, vous pouvez autoriser la modification d'une « Zone spécifique » depuis la section « Ressource de zone ». Autoriser un jeton API à modifier une seule zone est plus sécurisé que permettre au jeton API de modifier toutes les zones. En effet, si le jeton API est compromis, la surface d'attaque sera plus petite et moins de dégâts seront causés.
Si vous souhaitez utiliser une seule clé API pour modifier tous vos domaines gérés par CloudFlare, sélectionnez « Toutes les zones » dans la section « Ressource de zone ».
Une fois que vous avez terminé de configurer votre jeton API, cliquez sur « Continuer vers le résumé ».
Un résumé des actions que vous pouvez effectuer sur vos domaines gérés par CloudFlare avec le jeton API s'affichera. Cliquez sur « Créer un jeton ».
Un jeton API doit être créé. Copiez le jeton API dans un endroit sûr pour ne pas le perdre. Une fois que vous quitterez cette page, vous ne pourrez plus retrouver ce jeton API. Vous devez générer un nouveau jeton API au cas où vous le perdriez :
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
Stockage sécurisé du jeton API CloudFlare sur l'ordinateur/le serveur
Certbot doit utiliser le jeton API CloudFlare pour ajouter un nouvel enregistrement TXT pour votre domaine sur le serveur DNS CloudFlare. Vous devez donc stocker le jeton API CloudFlare sur votre ordinateur/serveur. Le stockage du jeton API sans garantir les autorisations d'accès aux fichiers appropriées peut permettre aux autres programmes/utilisateurs d'accéder au jeton API. Ce n'est pas ce que vous souhaitez pour des raisons de sécurité. Dans cette section, nous allons vous montrer comment stocker en toute sécurité le jeton API CloudFlare sur le système de fichiers.
Tout d'abord, créez un répertoire (c'est-à-dire ~/.secrets/certbot) dans lequel vous souhaitez stocker la clé API CloudFlare comme suit :
$ mkdir -pv ~ / .secrets / robot de certification
Créez un fichier « cloudflare.ini » dans le répertoire nouvellement créé (c'est-à-dire ~/.secrets/certbot) et ouvrez-le avec votre éditeur de texte préféré (c'est-à-dire nano) comme suit :
$ nano ~ / .secrets / robot de certification / cloudflare.ini Tapez la ligne suivante dans le fichier « cloudflare.ini » et appuyez sur
Pour garantir une autorisation d'accès appropriée au fichier « cloudflare.ini », exécutez les commandes suivantes pour vous assurer que seul l'utilisateur root dispose d'un accès en lecture et en écriture au fichier :
$ sudo chown racine:racine ~ / .secrets / robot de certification / cloudflare.ini$ sudo chmod 06h00 ~ / .secrets / robot de certification / cloudflare.ini
Comme vous pouvez le voir, seul l'utilisateur root dispose des autorisations de lecture et d'écriture sur le fichier « cloudflare.ini ».
$ ls -lh ~ / .secrets / robot de certification / cloudflare.ini
Les autres utilisateurs qui tentent de lire le fichier « cloudflare.ini » recevront un message d'erreur « Autorisation refusée ».
$ chat ~ / .secrets / robot de certification / cloudflare.ini
Génération d'un certificat SSL à l'aide de la validation DNS Certbot CloudFlare
Pour générer un certificat SSL Let's Encrypt pour le nom de domaine générique « *.nodekite.com » à l'aide de la validation DNS CloudFlare, exécutez la commande cerbot comme suit :
$ sudo certbot uniquement --dns-cloudflare --dns-cloudflare-informations d'identification ~ / .secrets / robot de certification / cloudflare.ini -d * .nodekite.comPour générer un certificat SSL Let's Encrypt pour les noms de domaine « nodekite.com » et « www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows :
$ sudo certbot uniquement --dns-cloudflare --dns-cloudflare-informations d'identification ~ / .secrets / robot de certification / cloudflare.ini -d www.nodekite.com -d nodekite.comSi les modifications DNS mettent beaucoup de temps à se propager aux serveurs de noms DNS populaires dans le monde entier, vous pouvez utiliser l'option « –dns-cloudflare-propagation-seconds » de Certbot pour définir le nombre de secondes pendant lesquelles vous souhaitez que Certbot attende avant la validation DNS. est effectuée.
$ sudo certbot uniquement --dns-cloudflare --dns-cloudflare-informations d'identification ~ / .secrets / robot de certification / cloudflare.ini --dns-cloudflare-propagation-secondes 60 -d * .nodekite.com Une fois que vous aurez exécuté la commande Certbot, il vous sera demandé de saisir votre adresse e-mail. Saisissez votre adresse e-mail et appuyez sur
Appuyez sur « Y », puis appuyez sur
Appuyez sur « Y », puis appuyez sur
Un certificat SSL Let’s Encrypt est en cours d’émission. Cela prend un certain temps pour terminer.
À ce stade, le certificat SSL Let’s Encrypt est émis. Le chemin complet où les fichiers de certificat SSL sont enregistrés doit être affiché. La date d'expiration du certificat SSL doit également être affichée.
Liste des certificats SSL Let's Encrypt à l'aide de Certbot
Vous pouvez lister tous les certificats SSL Let's Encrypt que vous avez générés à l'aide de Certbot avec la commande suivante :
$ sudo certificats certbotComme vous pouvez le voir, le certificat SSL Let's Encrypt généré pour le domaine « nodekite.com » est répertorié [1] . Un certificat SSL générique est émis pour le « nodekite.com » [2] nom de domaine. La date d'expiration du certificat est le 20/03/2024 (valable 89 jours) [3] . Le certificat et le chemin de la clé privée sont également répertoriés ici [4] .
Certbot stocke tous les certificats SSL que vous avez générés pour vos domaines dans le répertoire « /etc/letsencrypt/live » dans leur dossier respectif.
$ sudo ls -Rlh / etc. / chiffrons / en direct /
Renouveler les certificats SSL Let's Encrypt à l'aide de Certbot
Certbot renouvelle automatiquement tous les certificats SSL Let's Encrypt que vous avez générés à l'aide de la validation DNS CloudFlare.
Pour tester si la fonctionnalité de renouvellement automatique des certificats SSL Let's Encrypt fonctionne, exécutez la commande suivante :
$ sudo renouvellement du certbot --essai à secL’action de renouvellement automatique est simulée pour chacun des certificats SSL Let’s Encrypt que vous avez générés.
Si les tests réussissent, vous serez félicité. Un test réussi signifie que les certificats SSL seront automatiquement renouvelés avant leur expiration. Vous n’aurez rien d’autre à faire.
Pour que la fonctionnalité de renouvellement automatique de Certbot fonctionne, la minuterie système « cerbot.timer » doit être activée et active sur votre ordinateur/serveur.
Vous pouvez vérifier si le timer systemd « cerbot.timer » est activé et actif avec la commande suivante :
$ sudo statut systemctl certbot.timerComme vous pouvez le voir, le timer système « certbot.timer » est activé (démarre automatiquement au démarrage) [1] et actif [2] . Certbot vérifie s'il est nécessaire de renouveler un certificat SSL après seulement 11 minutes (selon la capture d'écran suivante) et renouvelle les certificats SSL sur le point d'expirer. [3] .
Pour vérifier manuellement si un certificat SSL est sur le point d'expirer et renouveler les certificats SSL expirant, exécutez la commande suivante :
$ sudo renouvellement du certbotDans notre cas, aucun certificat SSL n’est sur le point d’expirer. Ainsi, Certbot n'a tenté de renouveler aucun certificat SSL.
Pour forcer Certbot à renouveler le certificat SSL d'un domaine spécifique (disons *.nodekite.com), exécutez la commande suivante :
$ sudo certbot uniquement --force-renouvellement -d * .nodekite.com Appuyez sur « 1 » et appuyez sur
Le certificat SSL doit être renouvelé.
Conclusion
Pour obtenir un certificat SSL Let's Encrypt à l'aide de la validation DNS CloudFlare à l'aide de Certbot, vous avez besoin d'un accès au jeton API CloudFlare. Dans cet article, nous vous avons montré comment créer un jeton API CloudFlare pour votre domaine et le stocker en toute sécurité sur votre ordinateur/serveur afin que vous puissiez y accéder avec Certbot en cas de besoin. Nous vous avons également montré comment installer Certbot et le plugin Certbot CloudFlare DNS sur les distributions Linux les plus populaires. Nous vous avons montré comment générer les certificats SSL génériques Let's Encrypt ainsi que les certificats SSL pour des domaines uniques à l'aide de la validation DNS Certbot et CloudFlare. Enfin, nous vous avons montré comment renouveler automatiquement et manuellement les certificats SSL Let's Encrypt à l'aide de Certbot.