Recentemente, deparei-me com um problema relacionado em cert_exists() enquanto investigava a reutilização de certificados Let’s Encrypt.
No meu caso, os arquivos de certificado e ambos os diretórios RSA/ECDSA estavam presentes, mas a verificação atual ainda estava retornando falso porque openssl x509 -in ca.cer apenas mantém o primeiro certificado do bundle do emissor.
Usando:
openssl verify -untrusted ca.cer fullchain.cer
corrigiu a verificação. Também testei com certificados RSA e ECDSA reais e concluí uma reconstrução que reutilizou ambos os certificados existentes sem acionar a reemissão forçada.
Isso pode não ser a mesma causa raiz do diretório _ecc ausente descrito neste tópico, mas afeta o mesmo caminho de cert_exists(), então estou vinculando-o aqui, caso seja útil para alguém que esteja enfrentando sintomas semelhantes.
Relatório: Let's Encrypt cert_exists() truncates the CA chain, causing forced reissuance and rate-limit failures
PR: FIX: preserve the Let's Encrypt issuer chain in cert_exists - Pull Request #1136 - discourse/discourse_docker - GitHub