4 votes

Défi DNS Let's Encrypt avec plusieurs fournisseurs DNS publics

Nous utilisons deux fournisseurs DNS pour la redondance. Depuis l'attaque DDOS DynDNS de 2016, je m'attends à ce que nous ne soyons pas les seuls à pratiquer cela.

Je tente d'utiliser le certbot Let's Encrypt avec le défi DNS. Le fait d'avoir deux fournisseurs DNS semble poser un problème. Est-ce que les deux fournisseurs DNS doivent être mis à jour avec des enregistrements TXT identiques dans le cadre du processus de défi ?

La vraie question est, comment l'autorité de certification (CA) ACME de Let's Encrypt valide-t-elle les entrées TXT DNS ? Interroge-t-elle simplement le DNS public comme le ferait n'importe quel client, ou interroge-t-elle le fournisseur DNS spécifique qui correspond au plugin certbot que j'utilise ? Je soupçonne la première option.

J'ai essayé de créer un certificat en n'utilisant qu'un seul des plugins. Les entrées TXT ont été créées, mais la validation a échoué. Je suppose que je devrai mettre à jour les deux fournisseurs DNS (ou trouver comment lier les deux fournisseurs pour qu'ils synchronisent les changements).

La documentation ne semble pas indiquer qu'il est possible d'utiliser plusieurs plugins du même type, bien que je ne l'ai pas encore essayé. Un de mes fournisseurs exige que je fasse une mise à jour pour accéder à leur API.

S'il n'est pas possible de chaîner plusieurs plugins d'authentification, alors je pense que ma seule option pour le renouvellement automatisé est d'utiliser les pre- et post-hooks avec un script personnalisé pour modifier les deux fournisseurs DNS.

J'apprécierais une confirmation avant d'entreprendre le travail et les dépenses nécessaires (ou de choisir de gérer manuellement le processus de renouvellement).

EDIT : Je suis conscient que StackExchange a écrit et publié son propre outil de mise à jour DNS open-source, dnscontrol, qui pourrait être utilisé dans des scripts pre- et post-hook. Cependant, un de nos fournisseurs n'est pas supporté.

4voto

Ryan Bolger Points 16332

Il existe de nombreux clients ACME de tierce partie (LetsEncrypt) qui offrent plus de fonctionnalités que le certbot par défaut. Ils tiennent une liste à jour sur leur site ici : Implémentations de clients ACME

Beaucoup d'entre eux ont une sorte d'architecture de plugin DNS et certains vous permettent de spécifier différents plugins pour différents noms dans un certificat. Mais aucun que je connaisse ne vous permet de combiner des plugins par zone (de sorte que plus d'un plugin serait utilisé pour un enregistrement TXT de zone unique).

Cependant, si vous envisagez déjà d'écrire des hooks pre/post pour réaliser cela, je suggère d'utiliser quelque chose comme acme.sh. Il dispose d'un grand nombre de plugins DNS pré-écrits. Vous pourriez probablement assez facilement combiner deux ou plusieurs d'entre eux en un seul plugin fusionné qui accomplirait efficacement votre objectif.

2voto

anx Points 5996

Letsencrypt valide vos entrées TXT en interrogeant simplement un résolveur aléatoire, sans aucun contrôle sur lequel de vos serveurs de noms va être utilisé.

Je vous recommande de déléguer la zone _acme-challenge.example.com. à un seul fournisseur DNS auquel vous avez un accès automatisé. Vous ne serez jamais confronté à une situation de Déni de Service (DoS) chez aucun de vos fournisseurs DNS plus longtemps que le temps nécessaire pour effectuer ce changement - ou plus longtemps que la durée de validité des certificats letsencrypt. Par conséquent, il est acceptable de sauter la redondance pour ACME uniquement, vous pourrez ainsi utiliser toute l'automatisation comme avant d'ajouter davantage de serveurs de noms.

edit basé sur les commentaires : Cette stratégie ne permettra pas de continuer avec certbot, car les plugins de certbot respectifs ne gèrent pas correctement les domaines de validation aliénés ou délégués. Ils devraient chercher à modifier la zone de l'enregistrement de validation, mais tentent de modifier la zone du domaine validé, en ignorant qu'ils sont très valides et qu'ils peuvent différer.

D'autres clients acme peuvent exiger de spécifier explicitement l'emplacement de l'enregistrement de validation, comme c'est le cas avec acme.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X