Vamos criptografar a validação do certbot por HTTPS

16

A partir dos documentos do plug-in Certbot webroot

O plugin webroot funciona criando um arquivo temporário para cada um dos domínios solicitados no ${webroot-path}/.well-known/acme-challenge. Em seguida, o servidor de validação Let's Encrypt faz solicitações HTTP para validar que o DNS de cada domínio solicitado resolva para o servidor que está executando o certbot.

Em um servidor doméstico usado em particular, tenho a porta 80 desativada, ou seja, nenhum encaminhamento de porta está ativado no roteador. Não tenho intenção de abrir esse porto.

Como posso informar ao certbot que o servidor de validação não deve fazer uma solicitação HTTP, mas uma solicitação HTTPS (porta 443), para validar a propriedade do domínio?

O servidor de validação nem precisa validar o certificado do servidor doméstico, pois já usa HTTP por padrão. Talvez eu tenha um certificado autoassinado ou que esteja pronto para renovação, mas isso não deve importar.

Atualmente, estou na situação em que preciso habilitar o encaminhamento da porta 80, bem como um servidor, para criar / renovar certificados. Isso não me permite usar um cronjob para renovar o certificado. Bem, com bastante trabalho, mas já tenho um servidor ouvindo 443, o que também poderia fazer o trabalho.

Daniel F
fonte

Respostas:

8

Conforme relatado em https://community.letsencrypt.org/t/shouldnt-verification-via-dns-record-be-a-priority/604/47, o atualizador letsencrypt.sh suporta validação via DNS. Poucos scripts de atualização parecem ter implementado isso. No entanto, o método HTTP é o mais simples de implementar na configuração inicial.

O script que você possui pode usar TNS SNI ou Prova de Posse de uma Chave Anterior para renovações. As especificações podem ser encontradas em https://tools.ietf.org/html/draft-ietf-acme-acme-01#section-7.5 . Se for esse o caso, você não precisará ter o HTTP ativado.

BillThor
fonte
Obrigado, esqueci a verificação baseada em DNS. Tem sido relativamente difícil encontrar informações sobre ele, como os documentos mal mencionam. Não há gancho para o Namecheap, então tentarei implementar um agora e verificar como ele funciona. Aceitarei a resposta se ela funcionar como esperado, mas pode levar algum tempo, pois atualmente não há domínios disponíveis para renovação. Caso contrário, terei que executar o comando --webroot no servidor para que o servidor atue como um wrapper que possa ser agendado.
Daniel F
Apenas verificado, a API da Namecheap é muito ruim (substitua TODOS os registros para adicionar ou modificar um), o DNS não é uma opção nesse caso. Também estou usando outros registradores, o que torna a coisa mais complicada (gerenciamento de chaves da API). A chave de API da Namecheap fornece acesso até para registrar novos domínios ou transferir domínios, isso é inseguro como FK.
Daniel F
@DanielF Espero que a validação de DNS ou HTTP não seja usada para renovação. Também não é necessário, pois seus servidores devem passar o TLS SNI para o certificado existente e a solicitação pode ser assinada com o certificado existente. Qualquer um deve ser suficiente. DNS e HTTP são métodos razoáveis ​​para inscrição. Você deve ter 30 dias para resolver os problemas quando seu primeiro certificado estiver pronto para renovação.
BillThor