Vamos criptografar o desafio de DNS com vários provedores de DNS públicos

3

Usamos dois provedores de DNS para redundância. Desde o ataque DynDNS DDOS de 2016, espero que não estejamos sozinhos nessa prática.

Estou tentando usar o certificado Vamos Criptografar com o DNS. Ter dois provedores de DNS parece representar um problema. Os dois provedores de DNS precisam ser atualizados com registros TXT idênticos como parte do processo de desafio?

A verdadeira questão é, como é que a Autoridade de Certificação ACME da Let's Encrypt ACME valida as entradas TXT do DNS? Simplesmente consulta o DNS público como qualquer cliente faria, ou consulta o específico Provedor DNS que mapeia para o plug-in certbot que estou usando? Eu suspeito que o primeiro.

Eu tentei criar um certificado usando apenas um dos plugins. As entradas TXT foram criadas, mas a validação falhou. Espero que eu precise atualizar os provedores de DNS (ou descobrir como vincular os dois provedores para que eles sincronizem as alterações).

A documentação não parece indicar que o uso de vários plug-ins do mesmo tipo é possível, embora eu não tenha tentado ainda. Um dos meus provedores requer que eu atualize para ter acesso à API deles.

Se não for possível encadear vários plug-ins de autenticação, acredito que minha única opção para renovação automática é usar os pré e pós-ganchos com um script personalizado para modificar os provedores de DNS.

Eu apreciaria a confirmação disso antes de assumir o trabalho e as despesas exigidas (ou optar por gerenciar o processo de renovação manualmente).

EDIT: Estou ciente de que o StackExchange escreveu e publicou seu próprio atualizador de DNS de código aberto, dnscontrol , que poderia ser usado em scripts pré e pós-hook. No entanto, um dos nossos provedores não é suportado.

    
por Larry Silverman 06.04.2018 / 16:37

2 respostas

3

Existem muitos clientes ACME (LetsEncrypt) de terceiros que fornecem mais recursos do que o certbot padrão. Eles mantêm uma lista no site deles aqui: Implementações do cliente ACME

Muitos deles possuem algum tipo de arquitetura de plug-in do DNS e alguns permitem que você especifique diferentes plug-ins para diferentes nomes em um certificado. Mas nenhum que eu saiba permite que você combine plugins por zona (de forma que mais de um plugin serviria o registro TXT de uma única zona).

No entanto, se você já está pensando em escrever pré / post hooks para fazer isso. Eu sugiro usar algo como acme.sh . Tem uma tonelada de plugins DNS pré-escritos. Você provavelmente poderia facilmente combinar dois ou mais deles em um único plug-in mesclado que efetivamente atingiria seu objetivo.

    
por 06.04.2018 / 17:27
2

O Letsencrypt valida suas entradas TXT apenas consultando um resolvedor aleatório, sem nenhum controle sobre qual dos seus servidores de nomes será usado.

Eu recomendo que você delegue a _acme-challenge.example.com. zone para apenas um provedor de DNS ao qual você tenha acesso automatizado. Você nunca terá uma situação de negação de serviço em qualquer um dos seus provedores DNS por mais tempo do que o necessário para mudar isso - ou por mais tempo do que os certificados letsencrypt são válidos para. Portanto, não há problema em pular a redundância apenas para o ACME, para que você possa usar toda a automação como antes de adicionar mais servidores de nomes.

editar com base nos comentários: essa estratégia não permitirá continuar o certbot , pois os respectivos plug-ins do certbot não estão manipulando corretamente os domínios de validação com ou sem delegação. Ele deve procurar modificar a zona do registro de validação, mas tenta modificar a zona do domínio validado, desconsiderando que é muito válido e para que eles sejam diferentes.

Outros clientes acme podem exigir explicitamente a localização do registro de validação, como é o caso com acme.sh

    
por 06.04.2018 / 17:21