# Preciso de ajuda com dual container. Problema com LetsEncrypt há alguns dias

**URL:** https://meta.discourse.org/t/need-help-with-dual-container-issue-with-letsencrypt-for-a-few-days-now/411097
**Category:** Self-hosting
**Tags:** unsupported-install, two-container, letsencrypt
**Created:** [27 Agosto , 2026 19:27 UTC](https://meta.discourse.org/t/need-help-with-dual-container-issue-with-letsencrypt-for-a-few-days-now/411097 "2026-08-27T19:27:11Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![alltiagocom](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alltiagocom/32/492709_2.png) [@alltiagocom](https://meta.discourse.org/u/alltiagocom)
#### Post date: [27 Agosto , 2026 19:27 UTC](https://meta.discourse.org/t/need-help-with-dual-container-issue-with-letsencrypt-for-a-few-days-now/411097/1 "2026-08-27T19:27:12Z")

</div>

Estou chegando a um ponto de desespero, porque tentar que o Bot do Discourse ou a Claude resolvam esse problema parece impossível. Eu realmente não consigo explicar o problema, porque não sou tão conhecedor do assunto, e acho que é isso que realmente me incomoda.

Vou tentar explicar o que aconteceu, do meu ponto de vista.

Quando eu estava migrando do container único para o setup de dois containers, o arquivo em `samples/` usava `web-only` e eu deixei assim por engano, em vez de usar `web_only`.

Então, por causa disso (eu acho), minhas imagens não carregavam, porque algo esperava que o parâmetro fosse `web_only`, mas estava definido como `web-only`. Fiz algumas alterações e as imagens foram corrigidas. O problema agora são os certificados do Let’s Encrypt.

Pedi ajuda ao bot para corrigir, ele me disse para esperar até o dia seguinte, porque o problema era o limite de requisições (rate-limit) dos certificados. O problema seria resolvido. Não foi. Então perguntei de novo, depois perguntei à Claude, depois à Claude de novo… e estamos nessa situação de “espere até amanhã às X horas e SERÁ resolvido” há uma semana. Nunca é resolvido, ambos dizem “oh, sinto muito, não deveria ter assumido que seria resolvido, vamos tentar isso em vez disso, porque agora realmente será resolvido”. Nunca acontece.

O site em si está no ar e funcionando, mas sinto que toda vez que eu quero reconstruir, algo vai dar errado, e, para ser honesto, não quero depender de curativos o tempo todo.

A Claude me disse para adicionar algo aos hooks no `web_only.yml`, mas como nada parecido é mencionado nas instruções fornecidas aqui no fórum, eu esperava uma solução diferente, como… resolver o problema real.

Alguém poderia, por favor, me ajudar a descobrir qual é o problema e onde as coisas estão falhando? Eu realmente apreciaria, porque está exaustivo a essa altura. Não o trabalho em si, mas não entender o que está acontecendo e por que “esperar até amanhã” nunca parece resolver nada.

Obrigado!

* * *

Pedi à Claude para explicar qual parece ser o problema, talvez isso ajude? Aqui está o que ela disse:

**Título:** Setup de dois containers: pasta do certificado ECC ausente após a separação, loop de `--force` atingindo o limite de requisições a cada inicialização

**Configuração:** Dois containers (`data` + `web_only`), migrados de standalone. Templates: web, ratelimited, ssl, letsencrypt, cloudflare. Hostname `alltiago.com`, sem aliases.

**Sintoma:** A cada inicialização do `web_only`, o limite de requisições do Let’s Encrypt é atingido e o nginx falha ao servir, retornando erros de conexão até que as linhas de ECC sejam removidas manualmente de `/etc/nginx/conf.d/outlets/server/20-https.conf`.

**O que eu descobri:**

`/shared/letsencrypt/alltiago.com_ecc/` não existe na minha instalação. `/shared/letsencrypt/alltiago.com/` (RSA) existe e funciona bem, renovando normalmente.

Em `web.letsencrypt.ssl.template.yml`:

```plaintext
cert_exists() {
  [["$(cd ${LETSENCRYPT_DIR}/${DISCOURSE_HOSTNAME}$1 && openssl verify -CAfile <(openssl x509 -in ca.cer) fullchain.cer | grep "OK")"]]
}

issue_cert "ec-256"
if ! cert_exists "_ecc"; then
  issue_cert "ec-256" "--force"
fi

```

Como o diretório está ausente, `cert_exists "_ecc"` falha a cada inicialização, então `--force` é executado e solicita um novo certificado ECC, independentemente do que esteja no disco. Isso é feito via o hook `after_ssl` que faz o patch em `/etc/runit/1.d/install-ssl`, então ele roda a cada inicialização do container, não apenas no bootstrap.

Resultado: erro 429 `too many certificates (5) already issued for this exact set of identifiers in the last 168h`. Então `--installcert` é executado mesmo assim contra o diretório vazio e escreve um `/shared/ssl/alltiago.com_ecc.cer` inutilizável. O nginx está configurado com ambos os certificados, não consegue carregar o de ECC e não serve o site.

**Confirmado como funcionando:** A validação ACME HTTP-01 tem sucesso (testado via staging, certificado ECC emitido sem problemas para `letsencrypt_test`, estrutura de diretórios correta criada). O certificado RSA foi renovado com sucesso hoje. Portanto, isso não é DNS, firewall ou validação.

**Perguntas:**

1. Existe um método suportado para recriar `alltiago.com_ecc/` sem esperar o fim do limite de requisições?
2. O retorno falso de `cert_exists` deveria realmente acionar `--force` em vez de uma emissão normal? `--force` ignora a verificação de “certificado válido existente” e garante a exaustão do limite de requisições quando o diretório está ausente.
3. Existe uma maneira documentada de usar apenas RSA?

* * *

Duas notas factuais para que o tópico não saia do trilho: a data de tentativa de novo foi movida de 27 de agosto para 29 de agosto, porque a renovação RSA de hoje consumiu uma vaga na janela rolante de 168 horas. E a razão pela qual ninguém mais relata isso é que, em uma instalação normal, ambos os diretórios são criados na primeira inicialização e o ramo `--force` nunca é executado.

---

_[View the full topic](https://meta.discourse.org/t/need-help-with-dual-container-issue-with-letsencrypt-for-a-few-days-now/411097)._
