Fórum ficou indisponível, depois erro de renovação de certificado sobre configuração de firewall?

Olá!

Meu fórum caiu esta noite, entre 10 e 17 horas atrás (não consigo dizer precisamente). As páginas estavam aparentemente carregando versões em cache e muitos recursos não carregaram.

Parei e iniciei o contêiner sem sucesso.

Eu o reconstruí (uma vez) e agora tenho uma mensagem de certificado expirado.

https://www.ssllabs.com/ssltest/analyze.html?d=unicyclist.com retorna:
Válido até Wed, 13 Apr 2022 23:22:28 UTC (expirou há 11 horas e 15 minutos) EXPIRED

acme.sh.log me diz isto:

Erro ao criar nova ordem. Le_OrderFinalize não encontrado. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Erro ao criar nova ordem :: muitas autorizações falharam recentemente: veja https://letsencrypt.org/docs/rate-limits/",
  "status": 429
}

Olhei o log com mais atenção e vi anteriormente várias vezes, uma vez por dia desde março (não o suficiente para acionar o limite de taxa do Letsencrypt, de acordo com meus logs):

unicyclist.com:Erro de verificação:Buscando http://unicyclist.com/.well-known/acme-challenge/uSv1JIUxVs-Nn7Zn2cIZO355KGaqrtutELs4pgw67_Y: Tempo limite durante a conexão (provavelmente problema de firewall)

Defini estas regras de firewall na Hetzner no início de março:

Então, basicamente, tenho algumas perguntas:

  1. Essas regras de Firewall da Hetzner podem ser o problema? Se sim, qual(is) regra(s) estão faltando que poderiam causar o problema? Removi todas essas regras agora, aliás.

  2. Por que tive a mensagem unicyclist.com:Erro de verificação:Buscando […] Tempo limite durante a conexão (provavelmente problema de firewall) 10 vezes em uma única reconstrução esta manhã? Uma única reconstrução poderia acionar o limite de taxa do Letsencrypt? :thinking:

  3. Como atingi um limite de taxa, isso significa que meu fórum está basicamente fora do ar por uma semana e não posso fazer nada a respeito? :grimacing:

[quote=“Canapin, post:1, topic:224261”]
Como atingi um limite de taxa, isso significa que meu fórum ficará basicamente inativo por uma semana e não posso fazer nada a respeito? :grimacing:
[/quote]A solução que usei foi adicionar um segundo nome de host (por exemplo, www, mas poderia ser qualquer coisa) conforme sugerido em Configurando o Let’s Encrypt com Múltiplos Domínios, mas acredito que houve algumas alterações nos modelos que fazem com que essas instruções não funcionem. O que fiz para outro site há alguns dias foi editar /etc/runit/1.d/letsencrypt e adicionar -d newdomain nos locais onde você vê -d realdomain. Em seguida, certifique-se de que o novo domínio esteja apontado para o seu servidor e, em seguida, execute /etc/runit/1.d/letsencrypt.

Você também pode precisar abrir a porta 80. Meu entendimento é que ela não é necessária quando há um certificado válido, mas você não tem um certificado válido, então acho que ela precisa ler da porta 80 para começar. Não há desvantagem em ter a porta 80 aberta, pois algumas pessoas podem tentar acessar com http:// e, se você tiver a porta 80 aberta, elas poderão ser redirecionadas para https.

Trabalharei na atualização dessas instruções, mas tenho um caminhão de mudança chegando amanhã e deveria estar me preparando para isso em vez de postar no meta. :slight_smile:

3 curtidas

Obrigado pela sua resposta!
Usar um novo domínio/subdomínio exigiria um “rebake” de todos os posts?
Eu tenho 1,6 milhão de posts. Um “rebake” também acionaria o limite de taxa de incorporação do YouTube, como descobri quando importei este fórum do vBulletin.

O problema com um novo domínio/subdomínio temporário é que eu não sou o proprietário do domínio em que meu fórum está hospedado, o que é bastante irritante. As respostas do proprietário podem ser lentas e, se algo der errado, são outros e-mails indo e voltando… Nada muito prático :grimacing:
Eu realmente vi em Challenge Types - Let's Encrypt que a porta 80 deve estar disponível em alguns “desafios” (não sei que tipo de desafio é usado ao renovar um certificado do Discourse).


Além disso, estou realmente interessado em saber um pouco mais sobre o que parecem ser 10 desafios falhados (isso é igual a uma solicitação de certificado?) durante uma única reconstrução.

Talvez uma resposta oficial sobre isso pudesse ser interessante?

Porque se, por algum motivo, isso acionar mais solicitações de certificado do que o permitido pelo limite de taxa do Let’s Encrypt, então não deveria se comportar assim :white_question_mark:

Trecho de acme.sh.log:

[Thu 14 Apr 2022 10:29:01 AM UTC] payload
[Thu 14 Apr 2022 10:29:01 AM UTC] POST
[Thu 14 Apr 2022 10:29:01 AM UTC] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/98157717290/JXMDvA'
[Thu 14 Apr 2022 10:29:01 AM UTC] _CURL='curl --silent --dump-header /shared/letsencrypt/http.header  -L '
[Thu 14 Apr 2022 10:29:01 AM UTC] _ret='0'
[Thu 14 Apr 2022 10:29:01 AM UTC] code='200'
[Thu 14 Apr 2022 10:29:01 AM UTC] Pending
[Thu 14 Apr 2022 10:29:01 AM UTC] sleep 2 secs to verify
[Thu 14 Apr 2022 10:29:03 AM UTC] checking
[Thu 14 Apr 2022 10:29:03 AM UTC] url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/98157717290/JXMDvA'
[Thu 14 Apr 2022 10:29:03 AM UTC] payload
[Thu 14 Apr 2022 10:29:03 AM UTC] POST
[Thu 14 Apr 2022 10:29:03 AM UTC] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/98157717290/JXMDvA'
[Thu 14 Apr 2022 10:29:03 AM UTC] _CURL='curl --silent --dump-header /shared/letsencrypt/http.header  -L '
[Thu 14 Apr 2022 10:29:04 AM UTC] _ret='0'
[Thu 14 Apr 2022 10:29:04 AM UTC] code='200'
[Thu 14 Apr 2022 10:29:04 AM UTC] unicyclist.com:Verify error:Fetching http://unicyclist.com/.well-known/acme-challenge/uSv1JIUxVs-Nn7Zn2cIZO355KGaqrtutELs4pgw67_Y: Timeout during connect (likely firewall problem)
[Thu 14 Apr 2022 10:29:04 AM UTC] pid

Então, alguns segundos depois:

[Thu 14 Apr 2022 10:29:18 AM UTC] payload
[Thu 14 Apr 2022 10:29:19 AM UTC] POST
[Thu 14 Apr 2022 10:29:19 AM UTC] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/98157816830/tzknWw'
[Thu 14 Apr 2022 10:29:19 AM UTC] _CURL='curl --silent --dump-header /shared/letsencrypt/http.header  -L '
[Thu 14 Apr 2022 10:29:19 AM UTC] _ret='0'
[Thu 14 Apr 2022 10:29:19 AM UTC] code='200'
[Thu 14 Apr 2022 10:29:19 AM UTC] unicyclist.com:Verify error:Fetching http://unicyclist.com/.well-known/acme-challenge/UUi8goql9f4QjXwqdk_CUISDmwUpLHqhrSqwbr5D2aY: Timeout during connect (likely firewall problem)
[Thu 14 Apr 2022 10:29:19 AM UTC] pid

E assim por diante, 10 vezes durante esta reconstrução.

Eu não sei muito sobre isso, então talvez eu esteja completamente enganado.

Você deve abrir a porta 80. É necessário para renovar o certificado. Além disso, seu site não funcionará para pessoas que tentarem acessá-lo via HTTP pela primeira vez, pois elas não receberão o redirecionamento permanente para HTTPS.

6 curtidas

Reconstruí o fórum com a porta 80 disponível e meu fórum está online novamente. Não precisei esperar uma semana.

Obrigado!

4 curtidas

Fico feliz que tenha funcionado! (Para a minha solução alternativa para muitas solicitações do Let’s Encrypt, você não altera o URL do fórum, apenas adiciona um segundo domínio à solicitação de certificado. Pode ser qualquer outro domínio, então você poderia apontar algum domínio que você possua para o fórum e reconstruir como sugeri, mas felizmente você não precisou disso.)

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.