Let's Encrypt a annoncé qu'ils ont:
Activation de la prise en charge du défi DNS d'ACME
Comment ./letsencrypt-auto
générer un nouveau certificat à l'aide de la validation du domaine de challenge DNS?
EDIT
Je veux dire: Comment éviter la http/https
liaison de port en utilisant la fonctionnalité récemment annoncée (2015-01-20) qui vous permet de prouver la propriété du domaine en ajoutant un enregistrement TXT spécifique dans la zone DNS du domaine cible?
lets-encrypt
Pierre Prinetti
la source
la source
Réponses:
Il est actuellement possible d'effectuer une validation DNS également avec le client certbot LetsEncrypt en mode manuel. L'automatisation est également possible (voir ci-dessous).
Plugin manuel
Vous pouvez soit effectuer une vérification manuelle - avec le plugin manuel.
Certbot vous donnera ensuite les instructions pour mettre à jour manuellement un enregistrement TXT pour le domaine afin de procéder à la validation.
Une fois que vous avez mis à jour l'enregistrement DNS, appuyez sur Entrée, certbot continuera et, si LetsEncrypt CA vérifie le défi, le certificat est émis normalement.
Vous pouvez également utiliser une commande avec plus d'options pour réduire l'interactivité et répondre aux questions de certbot. Notez que le plugin manuel ne supporte pas encore le mode non interactif.
Le renouvellement ne fonctionne pas avec le plugin manuel car il fonctionne en mode non interactif. Plus d'informations dans la documentation officielle de Certbot .
Mise à jour: crochets manuels
Dans la nouvelle version de Certbot vous pouvez utiliser des crochets , par exemple
--manual-auth-hook
,--manual-cleanup-hook
. Les hooks sont des scripts externes exécutés par Certbot pour effectuer la tâche.Les informations sont transmises dans des variables d'environnement - par exemple, domaine à valider, jeton de défi. Vars:
CERTBOT_DOMAIN
,CERTBOT_VALIDATION
,CERTBOT_TOKEN
.Vous pouvez écrire votre propre gestionnaire ou utiliser des ressources existantes, il en existe beaucoup, par exemple pour le DNS Cloudflare.
Plus d'informations sur la documentation officielle des crochets Certbot
Automatisation, renouvellement, script
Si vous souhaitez automatiser la validation des défis DNS, cela n’est actuellement pas possible avec vanila certbot.Mise à jour: une certaine automatisation est possible avec les points d'ancrage Certbot.Nous avons donc créé un plugin simple prenant en charge l’écriture de scripts avec l’automatisation DNS. Il est disponible sous certbot-external-auth .
Il supporte les méthodes de validation DNS, HTTP, TLS-SNI. Vous pouvez l’utiliser en mode gestionnaire ou en mode de sortie JSON.
Mode gestionnaire
En mode gestionnaire, le plugin certbot + appelle des points d'ancrage externes (programme, script shell, python, ...) pour effectuer la validation et l'installation. En pratique, vous écrivez un script de gestionnaire / shell simple qui récupère les arguments d'entrée - domaine, jeton et effectue la modification dans DNS. Lorsque le gestionnaire se termine, certbot procède à la validation comme d'habitude.
Cela vous donne une flexibilité supplémentaire, le renouvellement est également possible.
Le mode gestionnaire est également compatible avec les points d'ancrage DNS déshydratés (ancien letsencrypt.sh). Il existe déjà de nombreux points d'ancrage DNS pour les fournisseurs courants (par exemple, CloudFlare, GoDaddy, AWS). Le référentiel contient un fichier README avec des exemples détaillés et des exemples de gestionnaires.
Exemple avec un hook DNS déshydraté :
Mode JSON
Un autre mode de plugin est le mode JSON. Il produit un objet JSON par ligne. Cela permet une intégration plus complexe - par exemple, Ansible ou un gestionnaire de déploiement appelle certbot. La communication est effectuée via STDOUT et STDIN. Cerbot produit un objet JSON avec des données pour effectuer la validation, par exemple:
Une fois le DNS mis à jour, l'appelant envoie le caractère de nouvelle ligne à STDIN du certbot pour signaler qu'il peut continuer avec la validation.
Cela permet l'automatisation et la gestion des certificats à partir du serveur de gestion central. Pour l'installation, vous pouvez déployer des certificats via SSH.
Pour plus d'informations, reportez-vous au fichier Lisezmoi et aux exemples de certbot-external-auth GitHub.
EDIT: Il y a aussi un nouvel article de blog décrivant le problème de validation DNS et l'utilisation du plugin.
EDIT: nous travaillons actuellement sur la validation Ansible en 2 étapes, bientôt disponible.
la source
certbot certonly --preferred-challenges dns -d example.com
) pour la demande initiale. Après avoir testé et changé l'enregistrement A, utilisez la méthode webroot commune (certbot certonly webroot -d example.com -w /path/to/webroot
) en utilisant exactement le même nom de domaine qu'avant. Si cela est fait correctement, certbot reconnaîtra le certificat / config existant et mettra à jour les paramètres de renouvellement afin que le certificat soit automatiquement renouvelé à l'avenir.J'ai pu utiliser le
dehydrated
client pour obtenir un certificat utilisant la validation DNS.https://github.com/lukas2511/dehydrated
Vous devrez utiliser le hook de validation DNS correct pour votre domaine, mais quelques options sont proposées à titre d'exemple:
https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks
la source
route53.rb
script de raccordement.À ce jour, le client officiel ne prend pas (encore) en charge le type de défi DNS-01.
Voir https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427.
Vous pouvez suivre les progrès à ce PR . Alternativement, certains clients le prennent déjà en charge.
la source
J'ai écrit un script de raccordement pour le client letsencrypt.sh qui vous permet d'utiliser la vérification Lets Encrypt DNS pour les fournisseurs DNS qui ne fournissent pas une API à utiliser (autrement dit, une saisie manuelle et une vérification sont requises).
Vous pouvez le vérifier ici: https://github.com/jbjonesjr/letsencrypt-manual-hook
la source
Comme mentionné dans les réponses précédentes, vous pouvez facilement vérifier un domaine par DNS avec ceci:
apt-get install -y git ruby letsencrypt git clone https://github.com/lukas2511/dehydrated.git git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb
la source
Après avoir essayé différentes combinaisons, c’est ce qui a bien fonctionné pour moi en utilisant des référentiels git déshydratés et letsencrypt-manual-hook . Si les étapes ci-dessous vous conviennent, n'oubliez pas de mettre en vedette ces dépôts
NOTE: Ceci est en plus des réponses de panticz.de et alexcline
Vous obtiendrez un hachage (après avoir exécuté la commande ci-dessus), créez un enregistrement TXT dans votre DNS. Assurez-vous que cela fonctionne en exécutant la commande ci-dessous ou GSuite Toolbox.
Maintenant, appuyez sur Entrée à l'invite. Cela n'a pas fonctionné pour moi bien que l'enregistrement TXT ait été mis à jour. Je devais appuyer sur Ctrl + C et réexécuter la commande.
Maintenant, vos concerts publics et privés sont présents ici.
Pour renouveler (le délai d’attente minimum est de 30 jours), reprenez la commande.
la source
Hugo Landau a écrit un client ACME dans Go ( https://github.com/hlandau/acme ) qui prend en charge les défis DNS (avec le protocole nsupdate de BIND). Cela fonctionne parfaitement pour moi depuis au moins 18 mois.
la source