피드로 돌아가기
The difficulty of making sure your website is broken
Hacker NewsHacker News
Security

Go 기반 맞춤형 서버 구축을 통한 Revoked/Expired TLS 인증서 테스트 환경 자동화

The difficulty of making sure your website is broken

2026년 4월 10일6intermediate

Context

CA의 공신력 유지를 위해 필수적인 Revoked 및 Expired 인증서 테스트 사이트 운영 필요성 대두. 기존 Certbot과 Nginx 기반의 Shell Script 조합은 복잡도 증가로 인해 인증서 상태 제어의 신뢰성 확보에 한계 노출.

Technical Solution

  • Lego 라이브러리를 활용한 ACME 프로토콜 기반 인증서 요청 및 자동 발급 프로세스 구현
  • TLS-ALPN-01 challenge 방식을 채택하여 추가 설정 없이 웹서버 단에서 도메인 검증 완료
  • 인증서 상태 전이 대기 로직을 통해 CRL 반영 시간(최대 1시간) 및 만료 기간(최소 6일)을 고려한 Next Certificate 저장 구조 설계
  • CRL 캐시 및 Push 기반 인프라 전파 시간을 고려하여 Revoked 인증서 적용 전 최소 24시간의 유예 기간 강제
  • Go 언어의 GetCertificate 콜백 함수를 활용하여 SNI 기반의 인메모리 인증서 동적 선택 및 서빙 구조 구현
  • 가용성보다 인증서 상태의 정확성을 우선하여 의도치 않은 만료 인증서 서빙 시 연결을 거부하는 엄격한 검증 로직 적용

- 표준 도구가 지원하지 않는 특수 상태(Edge Case) 테스트 필요 시, 라이브러리 기반의 맞춤형 컨트롤러 개발 검토 - 외부 인프라(CRL 등)의 전파 지연 시간을 고려한 상태 전이 대기 큐(Waiting Queue) 설계 적용 - SNI 기반의 동적 인증서 서빙 필요 시, 언어 차원의 TLS 콜백 함수 활용 가능성 확인

원문 읽기