Acho que faz anos que não vejo um certificado do Let’s Encrypt falhar na renovação, mas nas últimas uma ou duas semanas tive três sites com certificados desatualizados. Uma reconstrução resolve o problema e, até agora, não busquei pistas nos logs.
Da próxima vez, farei um pouco mais para diagnosticar o problema antes de corrigi-lo no site.
Obrigado, Daniela! Isso realmente parece estar relacionado, mas não sei o que fazer a respeito ou como saber se um site deve forçar a obtenção de um novo certificado. Acabei de verificar alguns sites e vários renovaram nos últimos dias. Acredito que, em todos os casos, o certificado havia expirado (verifiquei novamente apenas aquele que acabei de corrigir), então, quanto mais penso nisso, menos acho que isso explica a situação — a menos que alguns desses sites tivessem uma imagem base antiga o suficiente para falhar na recuperação de um novo certificado, porque essa imagem base tinha um certificado raiz desatualizado?
AH! Isso pode explicar. Outro site baseado em Docker com Debian 9 que eu gerencio está apresentando erros ao usar curl porque sua imagem raiz está corrompida.
Aqui está a lista de imagens do site que acabei de atualizar (parece que é hora de fazer um ./launcher cleanup!). Então, acho que foi a 2.0.20210528-1735?
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/app latest dab985be22b0 17 minutos atrás 2.84GB
discourse/base 2.0.20210528-1735 482386bf57af 4 meses atrás 2.36GB
<none> <none> 38be7702e0fc 5 meses atrás 2.75GB
discourse/base 2.0.20210415-1332 30e4746e631e 5 meses atrás 2.23GB
discourse/base 2.0.20201221-2020 c0704d4ce2b4 9 meses atrás 2.11GB
discourse/base 2.0.20201004-2310 b64c37d7ab06 12 meses atrás 2.4GB
discourse/base 2.0.20200429-2110 dc919e1dae2c 17 meses atrás 2.13GB
local_discourse/mail-receiver latest 711fb527de35 21 meses atrás 128MB
discourse/base 2.0.20191219-2109 4a99baef7044 21 meses atrás 2.23GB
discourse/mail-receiver release 06fe375fe2c8 22 meses atrás 128MB
discourse/base 2.0.20190901-2315 10f636afbeaf 2 anos atrás 2.29GB
discourse/base 2.0.20190625-0946 2b3a5b47565f 2 anos atrás 1.93GB
discourse/base 2.0.20190505-2322 ed87227f60d2 2 anos atrás 1.91GB
discourse/base 2.0.20190321-0122 7db99586b5b5 2 anos atrás 1.97GB
discourse/mail-receiver 1.1.2 44042627246b 4 anos atrás 142MB
Aqui estão as informações do certificado para o último certificado:
Emitido em Sábado, 26 de junho de 2021 às 19:31:09
Expira em Sexta-feira, 24 de setembro de 2021 às 19:31:08
Parece que não é todos ou muitos sites, no entanto.
Certo. É apenas a terceira vez que isso acontece e, cada vez, fiz com que colocar o site no ar fosse a prioridade. Da próxima vez, tentarei fazer anotações melhores.
Veja as chamadas para acme.sh nos logs, mas a saída vai para /dev/null.
Aha! É aquele erro relacionado ao uso do ZeroSSL como CA padrão. Agora me lembro que isso foi um problema num passado semi-recente.
Aqui está um caso que ainda não recriei:
root@community:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b97fe9b5c22 local_discourse/web_only "/sbin/boot" 9 months ago Up 5 days 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp web_only
b3eae8a90cd7 local_discourse/mail-receiver "/sbin/boot" 9 months ago Up 5 days 0.0.0.0:25->25/tcp mail-receiver
5e90805e6d0d local_discourse/data "/sbin/boot" 9 months ago Up 5 days data
root@community:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/web_only latest ffd890f053e7 9 months ago 2.39GB
local_discourse/mail-receiver latest 0d49c641ca25 9 months ago 128MB
<none> <none> e53ed7c5db0f 9 months ago 2.34GB
local_discourse/data latest 8c1539b06db4 9 months ago 2.15GB
discourse/base 2.0.20201221-2020 c0704d4ce2b4 9 months ago 2.11GB
discourse/base 2.0.20201208-1739 9da970f9c0bd 9 months ago 2.1GB
discourse/mail-receiver release 06fe375fe2c8 22 months ago 128MB
E quando executo o comando acme no contêiner, obtenho isso:
root@community-web-only:/# "/shared/letsencrypt"/acme.sh --cron --home "/shared/letsencrypt"
[Mon 04 Oct 2021 02:01:39 PM UTC] ===Iniciando cron===
[Mon 04 Oct 2021 02:01:39 PM UTC] Já está atualizado!
[Mon 04 Oct 2021 02:01:39 PM UTC] Atualização com sucesso!
[Mon 04 Oct 2021 02:01:39 PM UTC] Atualizado automaticamente para: 3.0.1
[Mon 04 Oct 2021 02:01:39 PM UTC] Renovação: 'community.thedaily9.in'
[Mon 04 Oct 2021 02:01:41 PM UTC] Usando CA: https://acme.zerossl.com/v2/DV90
[Mon 04 Oct 2021 02:01:41 PM UTC] Nenhuma credencial EAB encontrada para o ZeroSSL, vamos obter uma
[Mon 04 Oct 2021 02:01:41 PM UTC] O acme.sh está usando o ZeroSSL como CA padrão agora.
[Mon 04 Oct 2021 02:01:41 PM UTC] Por favor, atualize sua conta com um endereço de e-mail primeiro.
[Mon 04 Oct 2021 02:01:41 PM UTC] acme.sh --register-account -m my@example.com
[Mon 04 Oct 2021 02:01:41 PM UTC] Veja: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
[Mon 04 Oct 2021 02:01:41 PM UTC] Verifique o arquivo de log para mais detalhes: /shared/letsencrypt/acme.sh.log
[Mon 04 Oct 2021 02:01:41 PM UTC] Erro ao renovar community.thedaily9.in.
[Mon 04 Oct 2021 02:01:41 PM UTC] Renovação: 'community.thedaily9.in'
[Mon 04 Oct 2021 02:01:43 PM UTC] Usando CA: https://acme.zerossl.com/v2/DV90
[Mon 04 Oct 2021 02:01:43 PM UTC] Nenhuma credencial EAB encontrada para o ZeroSSL, vamos obter uma
[Mon 04 Oct 2021 02:01:43 PM UTC] O acme.sh está usando o ZeroSSL como CA padrão agora.
[Mon 04 Oct 2021 02:01:43 PM UTC] Por favor, atualize sua conta com um endereço de e-mail primeiro.
[Mon 04 Oct 2021 02:01:43 PM UTC] acme.sh --register-account -m my@example.com
[Mon 04 Oct 2021 02:01:43 PM UTC] Veja: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
[Mon 04 Oct 2021 02:01:43 PM UTC] Verifique o arquivo de log para mais detalhes: /shared/letsencrypt/acme.sh.log
[Mon 04 Oct 2021 02:01:43 PM UTC] Erro ao renovar community.thedaily9.in_ecc.
[Mon 04 Oct 2021 02:01:43 PM UTC] ===Fim do cron===
root@community-web-only:/#