Falha do Discourse ao renovar certificado

Isso não é verdade.

  1. Os links que anexei no comentário anterior eram de um git blame. Aqui está a versão mais recente do arquivo (linha relevante vinculada): discourse_docker/templates/web.ssl.template.yml at 247c71a1e45d32b0b814a8e9d5fdaa4faaf727b9 · discourse/discourse_docker · GitHub
  2. A nova instalação do site do meu amigo foi de uma semana atrás. A linha 37 do modelo acima diz: return 301 https://${DISCOURSE_HOSTNAME}$request_uri; mas no contêiner do Discourse Docker, tanto o dela (quanto o meu) /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf diz return 301 https://<seu_site_discourse>; Note como $request_uri é removido. Algo está fazendo com que isso desapareça! (Eu não sei o quê).
  3. Eu fiz uma renovação forçada simulada esta manhã como parte da minha investigação. Falhou. Eu então mudei /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf. Teve sucesso!

Na verdade, tudo bem; eu apenas editarei manualmente 20-redirect-http-to-https.conf toda vez que eu atualizar o Discourse. Para aqueles que encontrarem este comentário, o comando a ser executado é:

cat > /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf << 'EOF'
server {
  listen 80;
  listen [::]:80;

  location ~ /.well-known {
    root /var/www/discourse/public;
    allow all;
  }

  location / {
    return 301 https://<SEU_ENDERECO_DO_FORUM>$request_uri;
  }
}
EOF

Eu não tenho total certeza do que está causando essa falha, mas sei que modificar o conf acima resolve. Mas eu também modifiquei as notificações para que as renovações do letsencrypt não falhem silenciosamente — para que eu possa ter algum aviso prévio. Só pensei que você gostaria de saber!

4 curtidas