Vamos Criptografar anunciou que eles têm:
Suporte ativado para o desafio DNS da ACME
Como faço para ./letsencrypt-auto
gerar um novo certificado usando a validação de domínio de desafio do DNS?
EDIT
Quero dizer: como evitar a http/https
ligação de porta, usando o recém-anunciado recurso (2015-01-20) que permite provar a propriedade do domínio adicionando um registro TXT específico na zona DNS do domínio de destino?
lets-encrypt
Pierre Prinetti
fonte
fonte
Respostas:
Atualmente, é possível executar uma validação de DNS também com o cliente LetsEncrypt do certbot no modo manual. A automação também é possível (veja abaixo).
Plug-in manual
Você pode executar uma verificação manual - com o plug-in manual.
O Certbot fornecerá instruções para atualizar manualmente um registro TXT para o domínio para prosseguir com a validação.
Depois de atualizar o registro DNS, pressione Enter, o certbot continuará e se o LetsEncrypt CA verificar o desafio, o certificado será emitido normalmente.
Você também pode usar um comando com mais opções para minimizar a interatividade e responder a perguntas do certbot. Observe que o plug-in manual ainda não suporta o modo não interativo.
A renovação não funciona com o plug-in manual, pois é executado no modo não interativo. Mais informações na documentação oficial do Certbot .
Atualização: ganchos manuais
Na nova versão Certbot você pode usar ganchos , por exemplo
--manual-auth-hook
,--manual-cleanup-hook
. Os ganchos são scripts externos executados pelo Certbot para executar a tarefa.As informações são passadas em variáveis de ambiente - por exemplo, domínio para validar, desafiar o token. Vars:
CERTBOT_DOMAIN
,CERTBOT_VALIDATION
,CERTBOT_TOKEN
.Você pode escrever seu próprio manipulador ou usar já existente; existem muitos disponíveis, por exemplo, para Cloudflare DNS.
Mais informações sobre a documentação oficial dos ganchos Certbot
Automação, Renovação, Script
Se você deseja automatizar a validação de desafios de DNS, atualmente não é possível com o vanila certbot.Atualização: é possível alguma automação com os ganchos Certbot.Assim, criamos um plugin simples que suporta scripts com automação de DNS. Está disponível como certbot-external-auth .
Ele suporta métodos de validação DNS, HTTP, TLS-SNI. Você pode usá-lo no modo manipulador ou no modo de saída JSON.
Modo manipulador
No modo manipulador, o plug-in certbot + chama ganchos externos (um programa, shell script, python, ...) para executar a validação e instalação. Na prática, você escreve um script manipulador / shell simples que obtém argumentos de entrada - domínio, token e faz a alteração no DNS. Quando o manipulador termina, o certbot continua com a validação como de costume.
Isso oferece uma flexibilidade extra, a renovação também é possível.
O modo manipulador também é compatível com os ganchos DNS desidratados (anteriormente letsencrypt.sh). Já existem muitos ganchos de DNS para provedores comuns (por exemplo, CloudFlare, GoDaddy, AWS). No repositório, há um README com extensos exemplos e manipuladores de exemplo.
Exemplo com gancho DNS desidratado :
Modo JSON
Outro modo de plug-in é o modo JSON. Produz um objeto JSON por linha. Isso permite uma integração mais complicada - por exemplo, o Ansible ou algum gerenciador de implementação está chamando certbot. A comunicação é realizada via STDOUT e STDIN. Cerbot produz objeto JSON com dados para executar a validação, por exemplo,
Depois que o DNS é atualizado, o chamador envia um caractere de nova linha para STDIN do certbot para sinalizar que ele pode continuar com a validação.
Isso permite o gerenciamento de automação e certificado no servidor de gerenciamento central. Para instalação, você pode implantar certificados pelo SSH.
Para mais informações, consulte o leia-me e exemplos no GitHub certbot-external-auth .
EDIT: Há também uma nova postagem no blog descrevendo o problema de validação de DNS e o uso do plug-in.
EDIT: atualmente trabalhamos na validação em duas etapas do Ansible, que será desativada em breve.
fonte
certbot certonly --preferred-challenges dns -d example.com
) para a solicitação inicial. Após testar e alternar o registro A, use o método webroot comum (certbot certonly webroot -d example.com -w /path/to/webroot
) usando exatamente o mesmo nome de domínio que antes. Se feito corretamente, o certbot reconhecerá o certificado / configuração existente e atualizará as configurações de renovação, para que o certificado seja renovado automaticamente no futuro.Consegui usar o
dehydrated
cliente para obter um certificado usando a validação de DNS.https://github.com/lukas2511/dehydrated
Você precisará usar o gancho de validação de DNS correto para o seu domínio, mas existem algumas opções disponíveis como exemplos:
https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks
fonte
route53.rb
script do gancho.Atualmente, o cliente oficial ainda não suporta o tipo de desafio DNS-01.
Consulte https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427
Você pode acompanhar o progresso neste PR . Como alternativa, existem alguns clientes que já o suportam.
fonte
Eu escrevi um script de gancho para o cliente letsencrypt.sh que permite que você use a verificação do DNS Permite criptografar para provedores de DNS que não fornecem uma API para usar (também conhecida como entrada e verificação manuais).
Você pode conferir aqui: https://github.com/jbjonesjr/letsencrypt-manual-hook
fonte
Conforme mencionado nas respostas anteriores, você pode facilmente verificar um domínio pelo DNS com isso:
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
fonte
Depois de tentar combinações diferentes, foi isso que funcionou para mim usando os repositórios git desidratado e letsencrypt-manual-hook . Se as etapas abaixo funcionarem para você, não esqueça de colocar uma estrela nesses repositórios
NOTA: Além das respostas de panticz.de e alexcline
Você obterá um hash (depois de executar o comando acima), crie um registro TXT no seu DNS. Verifique se ele funciona executando o comando abaixo ou o GSuite Toolbox
Agora, pressione enter no prompt. Isso não funcionou para mim, embora o registro TXT tenha sido atualizado. Eu tive que pressionar Ctrl + C e executar o comando novamente.
Agora, seus certificados públicos e privados estão presentes aqui.
Para renovar (o tempo de espera mínimo é de 30 dias), apenas o mesmo comando novamente.
fonte
Hugo Landau escreveu um cliente ACME no Go ( https://github.com/hlandau/acme ) que suporta desafios de DNS (com o protocolo nsupdate do BIND). Ele está funcionando perfeitamente para mim há pelo menos 18 meses.
fonte