A primeira vez que recebi um lembrete da Redsift de que meus certificados iriam expirar em uma semana. Normalmente, o Discourse renova os certificados com bastante antecedência. Desta vez não, antes de começar a reconstruir (o que supostamente resolve o problema), @Falco, há algo que você gostaria que eu verificasse e postasse aqui para ajudar a chegar à raiz do motivo pelo qual os certificados não foram renovados?
A raiz do certificado é ISRGX1 e aqui estão as informações do certificado que está expirando:
Mas já se passou mais de um dia desde que atualizei o software do fórum e o certificado ainda não parece ter sido atualizado. Faltam 5 dias para expirar, então ele realmente precisa ser renovado em breve.
Estou no branch estável do Discourse, se isso fizer alguma diferença. É possível que a correção do endpoint não tenha sido retroportada?
Seria ótimo se alguém pudesse verificar se o web.ssl.template está se comportando corretamente no discourse-docker, pareceu-me que a porta 80 não estava servindo nenhum URL de /.well-known/ usado pelo Let’s Encrypt, todos os URLs estavam redirecionando para SSL, incluindo arquivos de teste que coloquei manualmente em /var/www/discourse/public/.well-known/. Tive que editar /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf diretamente dentro do contêiner do aplicativo.
O mesmo aqui. Não recebi um aviso sobre a expiração do certificado. Entrar no servidor e iniciar uma reconstrução /var/discourse % ./launcher rebuild resolveu o problema.
Em meus testes em uma instalação vanilla do nginx (1.18.0, mas acho que é o mesmo para 1.26.3), uma linha de configuração do nginx return 301 https://thehostname$request_uri; fora de um location substitui completamente qualquer bloco location anterior, em vez de ser um catch-all. Acredito que /.well-known/ simplesmente não é servido na porta 80, a menos que o redirecionamento 301 seja especificamente para outro location, como / no final do bloco server. Poderia ser o mesmo problema que este post do stackoverflow?
Fico feliz que o rebuild funcione, mas como o certificado já havia sido renovado para mim, não pude confirmar se um rebuild permitiria que os servidores de validação do Let’s Encrypt chegassem lá se um certificado tivesse expirado. Talvez um rebuild inicie a renovação do certificado antes que essa linha de template esteja em vigor ou algo semelhante, em vez de corrigir os templates, mas não consigo confirmar se é por isso que o rebuild faz a renovação funcionar.