서버 운영
HTTPS 인증서 문제, 도메인과 트래픽을 안전하게 관리하기
웹 서버의 HTTPS 인증서 관련 문제를 진단하고 안전하게 수정하는 실전 방법입니다.
HTTPS 인증서 문제는 악몽이다. 만료되면 사용자가 접속을 못 하고, 갱신할 때 실수하면 서비스가 멈춘다.
검색해서 들어온 상황이라면 바로 재현 조건부터 잡는 게 빠르다.
문제 상황을 명확히 파악하기
HTTPS 문제는 보통 몇 가지로 나뉜다:
- 인증서가 만료됨
- 인증서와 도메인이 맞지 않음
- 프록시나 로드밸런싱 설정 오류
먼저 봐야 할 것:
- HTTP status 코드: 정확히 뭐가 에러인지
- 확인 범위: 모든 도메인에서 안 되는지 일부만인지
- 프록시 규칙: 리버스 프록시 설정은 제대로 되어 있는지
인증서와 도메인 설정을 확인하기
HTTPS 문제는 보통 인증서 설정에서 나온다.
dig example.com
curl -I https://example.com
sudo nginx -t
curl로 HTTPS 요청을 직접 해보면 정확한 에러 메시지를 볼 수 있다. "certificate not yet valid", "certificate has expired", "hostname mismatch" 같은 구체적인 에러를 확인할 수 있다.
작게 바꿔보고 검증하기
HTTPS 설정은 프록시 규칙, 인증서, DNS까지 여러 부분이 얽혀 있다. 한 가지씩 수정해야 한다.
- 원래 증상이 같은 조건에서 다시 나오는지 확인한다.
- 로그를 보고 뭐가 다른지 정리한다.
- 배포된 화면, 빌드 결과, 실제 서버의 HTTPS 상태를 확인한다.
정리하며
결과가 바뀐 이유를 로그와 응답으로 설명할 수 있으면 충분히 정리된 것이다. HTTPS 관련 기록을 남겨두면 다음 인증서 갱신이 훨씬 쉽다.