Após ativar o HTTPS, o Discourse não funciona

Olá,

Após ativar os modelos do Let’s Encrypt e reconstruir o Discourse, nada funciona:

O NGINX retorna um erro criptico:

O estranho é: não há nenhum diretório nginx em /ETC

Estes modelos estão ativos:

Estas são as configurações com as quais o aplicativo foi reconstruído:

Qual pode ser a razão desse problema?
Acho que o certificado deve ser emitido para o nome de host: discourse.itas-karlsruhe.de

Já verifiquei com o launcher se o aplicativo realmente está em execução… Sim, ele está em execução…

I.

Parece que você está no seu diretório home (~) quando executa cd etc. O comando cd /etc/nginx deve funcionar.

1 curtida

Não, eu verifiquei no diretório correto:

Se esta for uma instalação padrão do Docker, você também precisará entrar no aplicativo primeiro.

cd /var/discourse
./launcher enter app

Supondo que isso tenha sucesso, você pode imprimir a linha 46 do arquivo de configuração com o sed:

sed -n '46p' /etc/nginx/conf.d/discourse.conf

Com os mesmos modelos que você e sem modificações específicas nesse arquivo de configuração, eu vejo o seguinte:

  return 301 https://discourse.softpress.com$request_uri;
1 curtida

Obrigado.
Encontrei o seguinte:

image

Como você pode ver, o campo “Discourse hostname” está preenchido no app.yml:

Parece que a substituição do hostname está falhando por algum motivo, mas não tenho certeza do porquê. Quando você reconstruiu o Discourse, fez isso executando esses comandos?

cd /var/discourse
./launcher rebuild app

A única diferença que consigo ver entre o que você tem e o que eu tenho é o uso de um hífen no nome de domínio, mas ficaria muito surpreso se isso causasse algum problema.

Sim, é assim que recriei o aplicativo…

Após a recriação, parece que tudo está funcionando:

Se você reconstruiu várias vezes, atingiu os limites de taxa do Let’s Encrypt.

Não há nginx no servidor; ele está dentro do container do Discourse. É por isso que você não consegue encontrá-lo.

Então você resolveu seu problema reconstruindo?

Você deve marcar aquela postagem como a solução.

Eu quis apenas dizer que não encontrei nenhum erro ou algo do tipo no log. (Veja a captura de tela)
O processo de build PARECE estar OK…

Agora solicitei o domínio final. Vou reconstruir o aplicativo com ele.

Depois de remover todas as configurações específicas do Let’s Encrypt e usar o nome de host original da VM, tudo funciona. Não sei o que há de errado com essas configurações.

Olá Simon,

Reconstruí novamente e notei que o certificado foi emitido com o nome errado:

É possível que o app.yml esteja configurado de forma incorreta?

app.txt (4,1 KB)

O que você quer dizer?

Eu

linha 51

DISCOURSE_HOSTNAME: deinbalkonnetz.de

esse não é o seu arquivo de configuração. De onde você o obteve?

???

É sim o meu arquivo de configuração… Redirecionamos esse domínio para nossa VM e estou tentando configurar o Discourse neste servidor…

então, em todo lugar na configuração onde aparece deinbalkonnetz.de, você precisa alterar.

depois disso, você precisa reconstruir o aplicativo.

O que você quer dizer com “em todo lugar”?
O nome do host é usado apenas na Linha 51 …

Não conheço outros arquivos de configuração além do app.yml …

Talvez isso ajude?

1 curtida

Obrigado, Jammy,

esses são pontos importantes, sem dúvida.

O problema é que meu hostname não está sendo usado de forma alguma:
DISCOURSE_HOSTNAME: ‘deinbalkonnetz.de

Acho que, em vez do nome da variável, o hostname real “deinbalkonnetz.de” deveria ser usado no certificado.

Você pode adicionar http://deinbalkonnetz.de/ como um segundo domínio ao certificado do Let’s Encrypt como uma possível solução alternativa?