Estou fazendo o Let's Encrypt pela primeira vez e esta pergunta 101 pode ter sido respondida em algum lugar, mas de qualquer forma, em https://eff-certbot.readthedocs.io/en/latest/using.html#setting-up -renovação automatizada
A maioria das instalações do Certbot vem com renovações automáticas pré-configuradas. Isso é feito por meio de uma tarefa agendada que é executada
certbot renew
periodicamente.
Então, para simplificar, estou usando o contêiner docker Certbot para obter o certificado, e esse contêiner não vem com renovações automáticas pré-configuradas, portanto, preciso habilitar essa funcionalidade sozinho.
A tarefa cron agendada é bastante simples:
0 0,12 * * * root sleep $SLEEPTIME && certbot renew -q
Minha pergunta é: os certificados Let's Encrypt são válidos por três meses , mas esta recomendação oficial do documento Certbot diz que precisamos tentar a renovação a cada 12 horas .
Isso parece realmente excessivo para mim. Alguém sabe quando poderemos fazer a renovação? (A partir da atualização do certificado "vamos criptografar" na linha de comando, sei que não há --force-renewal
opção)
Eu quis dizer, se a renovação puder acontecer com 10 dias de antecedência, então meu cron job poderá ser definido a cada 5 dias; se for com 6 dias de antecedência, usarei 3.
Além disso, alguém sabe se certbot renew
o código de retorno de pode ser usado para notificar meu script para acionar o recarregamento da configuração do nginx após a renovação realmente acontecer?
Obrigado
Quando você pode renovar?
Do FAQ deles (ênfase minha)
Dado que recomendam a renovação a cada 60 dias, é seguro presumir que são renováveis pelo menos 30 dias antes do vencimento.
Observe que
certbot
verifica automaticamente a expiração do certificado em relação ao relógio do sistema e, portanto, não disca para nenhuma API quando faltam mais de 30 dias para o certificado expirar. ( referência )Com que frequência ele deve ser executado?
Eu seria cauteloso com isso, não corte muito pequeno. Você pode desacelerar um pouco, mas lembre-se de que se o certbot falhar, não haverá nova tentativa imediata (ele pode falhar aleatoriamente por qualquer motivo) . Você deseja garantir que, se falhar, terá muitas oportunidades de tentar novamente e ter sucesso antes de expirar. Ninguém gosta que seus serviços falhem devido a erros de TLS/SSL.
Acionando recarga:
Estranhamente, isso é algo que pode ser sutilmente mais complexo de executar no docker. A maneira canônica de executar o nginx config reload é usar um gancho de implantação usando
--deploy-hook <script>
.Fora do docker, você apenas usaria o script para acionar diretamente o recarregamento da configuração do nginx. Dentro do docker, pode ser necessário escrever um script que deixe um arquivo marcador. Então o comando para solicitar a execução do docker pode ser
certbot renew && test -f <marker file>
.Outras notas
Apenas um aviso de que pode ser mais simples remover totalmente o TLS/SSL do nginx. Tanto o traefik quanto o caddy podem atuar como um gateway HTTPS em um back-end HTTP não criptografado. Ambos suportam nativamente Letsencrypt, o que significa que você simplesmente não precisa se preocupar em lidar com a renovação do certificado e recarregar a configuração do servidor HTTPS... tudo é feito para você. Minha preferência pessoal é Traefik