
데브옵스
세계 최초로 cert-manager 버그를 발견하고 해결하기
두줄요약
cert-manager에서 설정한 인증 체인과 실제 발급 결과가 달라지는 버그를 발견하고 원인을 분석했습니다. Let’s Encrypt 체인 변경과 선택 로직 문제를 확인한 뒤 업스트림에 PR을 제출해 머지했습니다.
문제 상황
- cert-manager에서
preferredChain: ISRG Root X1설정에도 DST Root CA X3 체인이 발급되는 현상 - 개발 서버 접속 불가 이슈를 계기로 인증 체인 불일치와 잠재 장애 가능성 확인
원인 분석
- Let’s Encrypt의 기본 체인 변경으로 cert-manager의 기존 체인 선택 휴리스틱이 노출
- alternate chain 탐색에서 default chain 제외, 중간 인증서 Issuer CN까지 비교하는 로직이 오동작 원인
- 구버전 boringSSL의 Trust Anchor 검증 방식과 맞물리며 실제 접속 실패로 이어질 수 있는 조건 형성
해결 방법
- ACME 응답, Certbot 로그, cert-manager 코드를 대조해 체인 선택 경로 검증
- 업스트림에 PR을 제출해 버그 수정 기여
