Renovação SSL LetsEncrypt não funcionando (devido a um proxy reverso extra na parte externa)

O certificado da minha instância do Discourse expirou hoje e está gerando um erro no navegador. Tentei executar a renovação manualmente conforme:

A renovação foi exibida como concluída, posso ver o certificado na pasta /shared/letsencrypt e ele foi renovado corretamente. Reiniciei o nginx dentro do Docker. Fiz um rebuild da instância, mas mesmo assim parece estar enviando o certificado antigo.

Verifiquei o domínio em vários sites e todos indicam que o certificado está expirado, então não é algo local.

Estou deixando passar algo?

Eu segui as mesmas instruções há 15 dias.

cd /var/discourse
./launcher enter app
"/shared/letsencrypt"/acme.sh --cron --home "/shared/letsencrypt" --force
exit

A primeira coisa que aprendi foi que, se você visualizar o certificado no Chrome, ele pode mostrar como inválido, mesmo estando válido. Veja: Bug do Chrome/Chromium: certificados SSL exibem datas incorretas (expiradas)

Em seguida, tentei

me@site:/var/discourse$ sudo ./launcher rebuild app

o que não funcionou, e finalmente

sudo reboot

O site passou a funcionar conforme o esperado.


Embora eu tenha observado o passo sobre rebuild, não tenho certeza se ele é necessário, mas foi uma etapa que realizei no caminho.

4 curtidas

Depois de tentar por horas, e logo após eu ter postado isso, percebi que, como estou usando uma implantação multi-site com um proxy reverso nginx, também precisei reiniciar o servidor nginx externo, e tudo começou a funcionar instantaneamente.
Vou marcar isso como a resposta, caso alguém acabe nessa situação.

1 curtida

Acho que o comando final sudo reboot pode ter funcionado para você porque reiniciou o nginx — que é exatamente o que eu postei na minha solução acima.

1 curtida

Algumas observações sobre isso:

  • na situação referenciada, o navegador na verdade não o mostra como inválido na barra de endereços
  • dependendo do sistema operacional, ele pode não reclamar sobre a data do certificado se você o verificar

Você encontrou a causa raiz do motivo pelo qual o certificado não estava sendo renovado automaticamente?

No site, notei que o problema ocorre porque ele não está em modo de produção, então todos os e-mails estão suspensos, incluindo os e-mails que renovariam o certificado.

image

O motivo da suspensão do e-mail é que ele faz parte do processo de restauração do banco de dados. No caso específico, ele foi restaurado a partir de uma instância diferente do Discourse.

O e-mail está desabilitado para evitar que dois sites enviem os mesmos e-mails.

a única maneira pela qual o e-mail está envolvido no processo de forma alguma é que a LE pode enviar um aviso se o seu certificado estiver expirando e você não o renovou

1 curtida

Ok. Obrigado. Agora preciso encontrar a causa raiz de por que o certificado não foi renovado automaticamente.

Há alguma razão pela qual um certificado não seria renovado?

Geralmente, são personalizações que quebram o processo de forma inesperada. Eu abriria um novo tópico mostrando seus detalhes e o que você fez.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.