Comment obtenir des certificats SSL Let's Encrypt à l'aide de la validation DNS Certbot CloudFlare

Comment Obtenir Des Certificats Ssl Let S Encrypt A L Aide De La Validation Dns Certbot Cloudflare



Certbot est un client ACME pour l'autorité de certification (CA) Let's Encrypt. Il est utilisé pour générer un certificat SSL Let’s Encrypt et le renouveler automatiquement. Par défaut, Certbot utilise le défi Let's Encrypt HTTP-01 pour vérifier la propriété du domaine et émettre un certificat SSL pour le domaine. Mais le défi HTTP-01 ne fonctionnera que si vous disposez d’une adresse IP publique et que votre ordinateur est accessible depuis Internet. Ainsi, si vous souhaitez utiliser les certificats SSL Let's Encrypt pour votre réseau domestique ou votre réseau privé, vous devez plutôt utiliser le défi DNS-01. Lorsque le défi DNS-01 est utilisé, Let's Encrypt vérifie la propriété du domaine à l'aide du serveur DNS du domaine. Cela fonctionne donc également pour les réseaux privés.

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 :

  1. Gérer votre domaine avec CloudFlare DNS
  2. Installation de Certbot et du plugin Certbot CloudFlare sur Ubuntu/Debian
  3. Installation de Certbot et du plugin Certbot CloudFlare sur Fedora
  4. Installation de Certbot et du plug-in Certbot CloudFlare sur RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Vérifier si Certbot et le plugin Certbot CloudFlare sont correctement installés
  6. Générer un jeton API CloudFlare
  7. Stockage sécurisé du jeton API CloudFlare sur l'ordinateur/le serveur
  8. Génération d'un certificat SSL à l'aide de la validation DNS Certbot CloudFlare
  9. Liste des certificats SSL Let's Encrypt à l'aide de Certbot
  10. Renouveler les certificats SSL Let's Encrypt à l'aide de Certbot
  11. Conclusion
  12. 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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 .

  Une capture d'écran d'un ordinateur Description générée automatiquement

Les plugins Certbot et Certbot CloudFlare DNS sont en cours d'installation. Cela prend un certain temps pour terminer.

  Une capture d'écran d'un programme informatique Description générée automatiquement

À ce stade, les plugins Certbot et Certbot CloudFlare DNS doivent être installés sur Fedora.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 .

  Une capture d'écran d'un ordinateur Description générée automatiquement

Les plugins Certbot et Certbot CloudFlare DNS sont en cours d'installation. Cela prend un certain temps pour terminer.

  Une capture d'écran d'un ordinateur Description générée automatiquement

Pour accepter la clé GPG du référentiel EPEL, appuyez sur « Y » puis appuyez sur .

  Une capture d'écran d'un ordinateur Description générée automatiquement

À ce stade, le plugin DNS Certbot et Certbot CloudFlare doit être installé.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 --version

Si 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.

  Une capture d'écran d'un ordinateur Description générée automatiquement

Pour vérifier si le plugin Certbot CloudFlare DNS est installé sur votre ordinateur, exécutez la commande suivante :

$ sudo plugins certbot

Si 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 :

  Une capture d'écran d'un ordinateur Description générée automatiquement

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] .

  Une capture d'écran d'un ordinateur Description générée automatiquement

Cliquez sur « Utiliser le modèle » dans la section « Modifier le DNS de la zone ».

  Une capture d'écran d'un ordinateur Description générée automatiquement

Dans la section « Autorisation », autorisez l'autorisation « Modifier » sur « Zone DNS » en sélectionnant les options marquées dans les menus déroulants.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 capture d'écran d'un ordinateur Description générée automatiquement

Une fois que vous avez terminé de configurer votre jeton API, cliquez sur « Continuer vers le résumé ».

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 ».

  Une capture d'écran d'un ordinateur Description générée automatiquement

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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 + X suivi de « Y » et pour l'enregistrer (si vous utilisez l'éditeur de texte nano).

dns_cloudflare_api_token = < votre-jeton-api-cloudflare >

  Une capture d'écran d'un ordinateur Description générée automatiquement

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

  Une capture d'écran d'un ordinateur Description générée automatiquement

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.com

Pour 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.com

Si 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 continuer.

Appuyez sur « Y », puis appuyez sur d'accepter les « Conditions d'utilisation » de Let's Encrypt.

  Une capture d'écran d'un ordinateur Description générée automatiquement

Appuyez sur « Y », puis appuyez sur .

  Une capture d'écran d'un programme informatique Description générée automatiquement

Un certificat SSL Let’s Encrypt est en cours d’émission. Cela prend un certain temps pour terminer.

  Une capture d'écran d'une erreur informatique Description générée automatiquement

À 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.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 certbot

Comme 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] .

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 /

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 à sec

L’action de renouvellement automatique est simulée pour chacun des certificats SSL Let’s Encrypt que vous avez générés.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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.

  Une capture d'écran d'un ordinateur Description générée automatiquement

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.timer

Comme 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] .

  Une capture d'écran d'un ordinateur Description générée automatiquement

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 certbot

Dans 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 pour sélectionner la première option (pour la validation DNS à l'aide de CloudFlare DNS).

  Une capture d'écran d'un ordinateur Description générée automatiquement

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.

Les références: