Resposta atualizada (veja a resposta original abaixo)
Na minha resposta original, concentrei-me no fato de que o script que você forneceu não é necessário ao usar o renew
comando. No entanto, não verifiquei se o renew
comando é realmente aplicável nesse cenário.
Como cdhowie e bobpaul no estado dos comentários: certbot renew
é um modo não interativo que - em conjunto com o desafio do DNS - requer que você forneça um script por meio do --manual-auth-hook
parâmetro O referido script deve ser capaz de definir um TXT
registro. Você também pode fornecer outro script para limpeza posterior através do --manual-cleanup-hook
parâmetro
Se você fornecer esses parâmetros, todo o processo será executado automaticamente sem nenhuma interação.
Se você não fornecer esses parâmetros, o certbot falhará:
/opt/certbot # certbot renew --force-renewal
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/foobar.w9f.de.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Se você deseja renovar seus certificados pelo modo manual, execute novamente os comandos que utilizou para adquirir os certificados. Nesse caso, seu script é uma boa opção, pois o certonly
comando não analisa os certificados / configurações atuais e exige que você forneça os nomes de domínio por meio do -d
parâmetro ou no modo interativo.
quando executar o "certbot renew", ele renovará todos eles automaticamente sem usar o meu script?
TL; DR: Sim, deveria.
Vamos dar uma olhada na documentação do certbot :
A partir da versão 0.10.0, o Certbot suporta uma ação de renovação para verificar todos os certificados instalados quanto à validade iminente e tentar renová-los. A forma mais simples é simplesmente
renovação do certbot
Por enquanto, tudo bem.
Este comando tenta renovar quaisquer certificados obtidos anteriormente que expiram em menos de 30 dias.
Isso deve responder à sua pergunta. Cuidado: não sei como certbot
lidar com situações em que você move os certificados para diretórios diferentes.
Posteriormente no mesmo parágrafo:
O mesmo plug-in e opções usados no momento em que o certificado foi originalmente emitido serão usados para a tentativa de renovação, a menos que você especifique outros plug-ins ou opções. Ao contrário certonly
, renew
atua em vários certificados e sempre leva em consideração se cada um deles está próximo do vencimento.
Então sim; certbot
deve renovar todos os seus certificados sem a ajuda do seu script.
Como realmente crio um novo certificado usando o desafio do DNS para começar?
O que há de errado com o comando que você postou no início da sua postagem?
certbot -d example.com --manual --preferred-challenges dns certonly
adquirirá um certificado para example.com usando o desafio de DNS.
As etapas para criar um certificado são:
- Execute o
certbot
comando que você postou
- Aguarde o comando mostrar um registro DNS TXT
- Crie esse registro TXT
- Continue o
certbot
comando
- Obter um certificado para o domínio especificado
- Exclua o registro TXT (já que você só precisa dele para a criação e um novo para a renovação)
Se você deseja automatizar esse processo completo, dê uma olhada em uma ferramenta como lego, que suporta alguns provedores de DNS .
certbot renew
não suporta o método manual sem um script .--manual
. O objetivo inteiro--manual
é forçar o modo interativo. Mas você pode usar plug-ins DNS, como aws ou digitalocean,certonly
sem a--manual
opção e eles serão renovados automaticamente antes de 90 dias.