Implantação do Discourse no Lightsail: "conexão recusada"

Olá,

Recentemente, segui o guia install-cloud para instalar o Discourse em uma instância AWS Lightsail. Apesar de seguir as instruções atentamente e começar do zero várias vezes, infelizmente recebo um erro de “conexão recusada” ao tentar acessar meu fórum.
As etapas que segui foram:

  1. Criar uma nova instância Lightsail
  2. Atribuir um endereço IP estático
  3. Abrir a porta 443
  4. Apontar meu subdomínio (forum.procedural.audio) para o endereço IP
  5. Seguir os comandos de instalação do Discourse no guia, incluindo fornecer um endereço de e-mail para LETS_ENCRYPT
  6. Navegar até meu fórum… conexão recusada

A execução de ./discourse-doctor mostra que a versão do Discourse em forum.procedural.audio é NÃO ENCONTRADA. Consigo receber um e-mail de teste do Discourse com sucesso.
A execução de ping forum.procedural.audio não recebe dados de volta, mas encontra o IP estático correto.
Notei os seguintes erros nos logs

$ ./launcher logs app
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
(repete muitas outras vezes)

Portanto, parece que o problema está relacionado ao SSL, embora eu não tenha certeza de como corrigi-lo. No diretório shared/standalone/ssl/, existem quatro arquivos

  1. forum.procedural.audio.cer (arquivo está vazio)
  2. forum.procedural.audio.key (arquivo contém uma chave)
  3. forum.procedural.audio_ecc.cer (arquivo está vazio)
  4. forum.procedural.audio_ecc.key (arquivo contém uma chave)

Então, não tenho certeza se os arquivos .cer estarem vazios é parte do problema. No entanto, também noto que os logs indicam que ele está procurando o arquivo em /shared/ssl/* em vez de /shared/standalone/ssl/*, o que também parece relevante.

Obrigado pela sua ajuda.

1 curtida

O problema é que sua instância do Lightsail não está acessível externamente. É isso que o discourse-doctor estava lhe dizendo - se você abriu apenas a porta 443, este é provavelmente o motivo.

O HTTPS na porta 443 não funcionará até que você tenha um certificado. Você não tem um certificado (e esses arquivos de certificado estão vazios) porque o Let’s Encrypt não conseguiu se registrar devido ao problema de comunicação.

Assumindo que você atribuiu um endereço externo estático e também abriu a porta 80, tente novamente. A porta 80 precisará estar aberta de qualquer maneira para que qualquer cliente que se conecte via HTTP possa ser redirecionado.

Acabei de verificar e este nome de host é inválido. Você precisa corrigir isso primeiro.

não é possível resolver forum.procedural.audio: Host desconhecido
1 curtida

As portas 22 e 80 estão abertas por padrão para instâncias do Lightsail. Portanto, não acho que abrir a porta 80 seja a solução.

Desculpe, você se importaria de elaborar mais? Em que sentido o nome do host é inválido?

forum.procedural.audio não aparece no DNS, ou, em outras palavras, o nome do host não se resolve para um IP. Acabei de verificar via CloudFlare e Google DNS, nenhum dos dois consegue encontrar esse nome de host. Se eu não consigo resolver, o discourse-doctor também não consegue.

Quando você criou o registro ‘a’ para o seu servidor? Você verificou os tempos de replicação deles?

Certifique-se de que isso esteja corrigido antes de tentar construir o servidor novamente. O Let’s Encrypt dá um número finito de tentativas para se inscrever/renovar e, quando você atinge esse limite, não poderá obter um certificado por sete dias.

1 curtida

Eu tenho o domínio no Namecheap há dois dias, que aponta para o Route 53 (a camada extra de indireção é porque o Route 53 não suporta domínios .audio). A entrada do domínio principal existe há a maior parte desses dois dias. O registro de subdomínio existe há cerca de uma hora.

Se este fosse o problema, acho que executar ping forum.procedural.audio da minha instância falharia na resolução do endereço IP. Mas o IP é resolvido.

Ele não resolve externamente, o Let’s Encrypt usa DNS para garantir que o servidor é o que ele afirma ser.

ping forum.procedural.audio                                                                                                               ✔  1909  10:59:47
ping: não foi possível resolver forum.procedural.audio: Host desconhecido

Hmm. Bem, https://dnschecker.org/#A/forum.procedural.audio mostra que o nome se resolve em vários lugares, então talvez seja um problema de propagação. Quando 1.1.1.1 ou 8.8.8.8 o consultam, não recebo resposta. No entanto, NS-337.AWSDNS-42.COM o retorna, então você pode precisar esperar um pouco.

Mas discourse-setup tentará consultar o endereço e ver se consegue se conectar a si mesmo. Se isso estiver falhando, geralmente é um problema de DNS ou as portas não estão abertas.

1 curtida

Olá,

Já faz quase uma semana e continuo sem conseguir implantar um fórum. Alguém tem mais ideias? As portas 80 e 443 estão abertas. Não acho que seja um problema de DNS – discourse-doctor não encontra a versão do discourse em localhost (além de em forum.procedural.audio). Qualquer ajuda é bem-vinda.

nslookup.exe forum.procedural.audio
Server:  dns.google
Address:  8.8.8.8

*** dns.google can't find forum.procedural.audio: Server failed

É um problema de DNS.

3 curtidas

Hmmm https://dnschecker.org/#A/forum.procedural.audio mostra que ele se propagou para 31/32 locais. Nunca ouvi falar de registros DNS levarem mais de 144 horas para se propagar. Mas agora, verificando https://www.nslookup.io/domains/forum.procedural.audio/dns-records/#cloudflare, vejo que Cloudflare e Google não conseguem resolvê-lo, embora o servidor autoritativo consiga.

Então, acho que eu estava errado, mas não tenho certeza do que fazer a respeito. Não tenho certeza por que o discourse-doctor não consegue encontrar a versão do discourse em localhost.

Então você tem um problema de DNS.

E se você fez muitas reconstruções, você tem um problema de limite de taxa do Let’s Encrypt.

1 curtida