최근 Let’s Encrypt 인증서 재사용을 조사하던 중 cert_exists() 함수에서 관련 문제를 경험했습니다.
제 경우 인증서 파일과 RSA/ECDSA 디렉터리가 모두 존재했지만, openssl x509 -in ca.cer 명령이 발급자 번들에서 첫 번째 인증서만 유지하기 때문에 현재 검사 로직은 여전히 false를 반환하고 있었습니다.
아래 명령을 사용했습니다:
openssl verify -untrusted ca.cer fullchain.cer
이로 인해 검증 문제가 해결되었습니다. 실제 RSA 및 ECDSA 인증서로 테스트를 수행했으며, 강제 재발급을 트리거하지 않고 기존 인증서 두 개를 모두 재사용하는 재빌드도 성공적으로 완료했습니다.
이 문제는 해당 토픽에서 설명된 _ecc 디렉터리 누락의 근본 원인과 동일하지 않을 수 있지만, 동일한 cert_exists() 경로에 영향을 미치므로 유사한 증상을 겪는 분들에게 도움이 될 수 있어 여기에 링크를 공유합니다.
리포트: 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