Problemas com SSL após várias recompilações

3º post consecutivo… porque quando edito, acho que não aparece nas novas respostas.

Fiz tudo o que foi dito. Importei tudo. O importador foi parado e o aplicativo foi iniciado. Mas ainda não consigo me conectar ao meu site :frowning:

O Firefox diz: Hmm. Estamos com problemas para encontrar esse site. Não conseguimos conectar ao servidor em [meu site Discourse]

…cruzo os dedos na esperança de que alguém saiba a resposta

É difícil ter uma resposta com tão pouca informação. Tudo o que sabemos é que seu site não está acessível.

  • Você verificou os logs? O que eles dizem?
  • Você esperou alguns momentos extras após iniciar o aplicativo? Pode levar um tempo até que o site fique acessível.

Com a quantidade de posts aqui específicos para o seu caso, provavelmente valeria a pena dividi-los em um tópico separado, já que isso parece estar apenas parcialmente conectado ao importador.

Olá Helmi, obrigado pela sua resposta. Sim, concordo que isso talvez pertença a outro tópico, mas como os problemas começaram quando eu estava importando, coloquei aqui primeiro.

Em relação às suas perguntas, instalei o Discourse manualmente em um Droplet da DO. Tudo funcionou bem, e já havia feito a importação. No entanto, precisei refazer a importação do zero porque havia esquecido de definir os caminhos dos emojis. Por isso, precisei apagar tudo. Mas, desde então, os problemas começaram.

Consegui me conectar ao meu fórum uma vez para restaurar meu backup de todas as configurações (tema, etc.) antes de fazer a importação. Depois, tive que interromper a importação porque cometi um erro na localização dos emojis, então precisei refazer tudo do zero novamente. Por isso, apaguei tudo de novo e, em seguida, refiz a importação. (Eu pensei).

Mas, desde então, não consigo mais me conectar ao site. O Discourse Doctor diz que tudo está bem, exceto que não consegue encontrar a versão do meu Discourse. Quanto aos logs, por favor, me informe o comando para acessá-los e eu posso verificar. Sim, esperei, esperei e esperei… ainda sem conexão.

Estou realmente sem saber para onde olhar para resolver isso. Se você tiver alguma ideia, por favor, me avise :slight_smile:

Edt: então descobri como verificar os logs… e eles estão cheios de erros de SSL. Então estou tentando reinstalar um novo certificado agora com este link Set up HTTPS support with Let's Encrypt - realmente espero que isso resolva.

Erros de SSL provavelmente significam que você já tentou solicitar um certificado LE muitas vezes. Seu domínio pode estar bloqueado na LE por um tempo. Dê uma olhada mais de perto e, se for o caso, talvez use um subdomínio por enquanto para contornar isso.

E quanto ao resto: Como você está na DO, talvez no futuro faça um snapshot na DO toda vez que atingir um passo do qual queira poder retornar em caso de problemas.

Muito obrigado pela dica sobre os snapshots. Com certeza vou guardar isso em mente para a próxima vez!

Além disso, consegui resolver o problema copiando de volta o diretório SSL a partir do backup que fiz. Acontece que, de alguma forma, os certificados foram transformados em arquivos de 0 KB? Estranho. Quando restaurei os arquivos antigos, consegui acessar.

Obrigado a todos pela ajuda e suporte. E acho que agora todas as minhas postagens anteriores se encaixariam melhor em suporte / SSL ou algo assim (mas, é claro, eu não sabia disso na hora de postar).

edit: atualização, após recriar o aplicativo, parece que o SSL é excluído de alguma forma toda vez. Ele solicita um certificado LE a cada recriação? Se sim, então entendo que possa parecer que eu solicitei muitas vezes… Recriei tantas vezes para descobrir o que estava errado.

Não. Pelo que sei, ele verifica a data de renovação e renova quando necessário.

Aparentemente, você pode obter cinco certificados em sete dias:

Um desses erros parece indicar que seu nome de domínio não está apontando para o número IP correto.

Obrigado, JahDu. Bem, então acho ainda mais estranho que, após uma reconstrução, as chaves SSL não estejam configuradas corretamente.

@Jay, bem, é estranho porque funcionava antes, com o mesmo IP e tudo mais. O domínio está apontado para o IP correto.

O Discourse está em um subdomínio do meu domínio principal, ambos em servidores diferentes; o subdomínio tinha um IP diferente do domínio principal. Mas o subdomínio está registrado nas configurações de SSL.

Eu verificaria o app.yml novamente, mas ele está no meio da recriação de 100 mil posts (para que um plugin funcione) e isso leva um tempo…

edição: verifiquei novamente o app.yml, mas nada mudou desde o momento em que tudo funcionava.
Onde devo procurar agora?

Acabei de fazer outra reimportação. Desta vez, sem reconstruir o aplicativo. Restaurei um backup e depois importei o banco de dados phpbb3. Após a importação, novamente, as chaves SSL foram prejudicadas. Não reconstruí nada, apenas iniciei e parei os contêineres app.yml e import.yml.

Estou sem ideias. Restaurar um backup pelo Painel Administrativo (CP) prejudica o SSL? Não verifiquei o diretório SSL até depois da importação, então não sei quando isso aconteceu.

Quem, oh quem, pode esclarecer isso?

Algum detalhe sobre o erro do SSL? Tipo, algo do log? Minha suposição ainda é que seu domínio esteja bloqueado pela LE, mas sem detalhes do log é difícil afirmar.

O que acontece é que os arquivos no diretório SSL são sobrescritos de alguma forma, de modo que os arquivos .key e/ou .cer ficam com 0 KB em vez dos 3 KB e algo que deveriam ter. Apenas um ou dois deles são ‘corrompidos’ para 0 KB, não todos. Eu resolvo copiando os arquivos de backup de volta, mas isso é apenas uma solução temporária.

Os logs (antes de eu corrigir os arquivos) mostram esse erro repetidamente:

nginx: [emerg] não foi possível carregar o certificado “/shared/ssl/[mydomain]_ecc.cer”: BIO_new_file() falhou (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/shared/ssl/[domain]_ecc.cer’,‘r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] não foi possível carregar o certificado “/shared/ssl/[domain]_ecc.cer”: PEM_read_bio_X509_AUX() falhou (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

Por favor, verifique /shared/letsencrypt/acme.sh.log dentro do contêiner para descobrir o que está acontecendo.

Ahhh, eu não sabia que havia logs lá também :slight_smile: obrigado por apontar!

Tem muita coisa acontecendo ali, parece que os certificados estavam sendo renovados a cada rebuild? porque há um monte de coisas de renovação acontecendo. E o @helmi está certo, acho que é este aqui que você quer dizer:

[Sat 25 Jan 2020 06:48:31 PM UTC] Create new order error. Le_OrderFinalize not found. {
“type”: “urn:ietf:params:acme:error:rateLimited”,
“detail”: "Error creating new order :: too many certificates already issued for exact set of domains: $
“status”: 429

então… como eu passo por isso?

edit: de acordo com a letsencrypt:

Se você atingiu um limite de taxa, não temos como redefini-lo temporariamente. Você precisará esperar até que o limite de taxa expire após uma semana.

e então eu encontrei Rate Limits - Let's Encrypt

então… acho que vou ter que esperar uma semana então…

edit2: eu verifiquei em https://crt.sh/ e só vejo 10 certificados na última semana? não 50…

pergunta: quando é que considera um certificado uma renovação? só quando um rebuild app, eu suponho?

Você tem um nome de host com letras maiúsculas e minúsculas misturadas? Acredito que o código agora converte tudo para minúsculas, mas essa é apenas uma suposição. Tenho quase certeza de que uma reconstrução geralmente não solicita um novo certificado se ele ainda for válido.

você quer dizer como definido em app.yml em DISCOURSE_HOSTNAME?
não, isso é tudo em minúsculas.

A única maneira que eu conheço de atingir esse limite é se suas solicitações de certificado estiverem falhando por algum motivo.

Obrigado :slight_smile: Como/onde posso verificar se eles falham? Você sabe qual erro devo procurar nos logs?

Se você acessar o fórum da LetsEncrypt, criar um novo tópico na categoria Ajuda e preencher o formulário que é apresentado, eles poderão verificar seu(s) domínio(s) e informar quais problemas, se houver, podem existir. Eles também podem ajudá-lo a corrigir qualquer problema.
Como observação adicional: a LE recomenda usar o modo “staging” para evitar atingir os limites de certificados que você encontra no modo de produção. Um limite de 5 tentativas falhas é renovado após 1 hora. :wink:

Obrigado, Jim. Farei isso quando os erros voltarem.
Acabei de fazer outra reconstrução e, olhe só, não houve erro de SSL!