← 전체 글로 돌아가기

서버 운영

Nginx 설정에서 HTTPS 인증서 오류를 빨리 찾는 방법

도메인이나 Nginx 설정 문제로 인증서 오류가 날 때 확인할 순서를 정리했습니다.

도메인과 인증서 문제는 DNS와 프록시 규칙이 섞여 있어서 원인을 찾기가 어렵다. 하지만 확인 순서를 고정하면 대부분은 10분 안에 해결된다.

DNS 응답부터 확인

Nginx 문제인지 도메인 문제인지를 가장 빨리 구분하는 방법은 DNS 조회다.

dig example.com
dig @8.8.8.8 example.com

공개 DNS(8.8.8.8)와 로컬 DNS 결과가 다르면 DNS 캐시가 문제일 수 있다. A 레코드 IP가 맞는지, CNAME이 제대로 설정되었는지 확인한다.

Nginx 문법과 인증서 경로

Nginx 설정이 문법상 맞는지 먼저 검증한다.

sudo nginx -t
sudo systemctl reload nginx

ssl_certificate와 ssl_certificate_key 경로가 실제로 존재하는지, 파일의 권한(644)이 맞는지 확인해야 한다. 특히 /etc/letsencrypt 같은 경로는 권한 문제가 자주 생긴다.

실제 연결 테스트

curl -I https://example.com
curl -v https://example.com

-v 플래그로 TLS 핸드셰이크 과정을 보면 인증서 불일치나 만료 여부를 알 수 있다. 만약 자체 서명 인증서가 설치되어 있다면 Let's Encrypt 자동 갱신 설정을 확인해야 한다.

캐시와 환경 차이

브라우저 캐시나 CDN 캐시가 오래된 상태를 계속 보여줄 수 있다. 프라이빗 창에서 다시 접근해 보거나 캐시를 초기화하고 테스트한다.

로컬과 서버 환경의 차이도 확인해야 한다. /etc/hosts 파일에 임시 항목이 남아 있지는 않은지 확인한다.

문제 해결 기록 남기기

  1. DNS 응답이 맞는지 확인했는가
  2. Nginx 문법과 파일 경로는 검증했는가
  3. 인증서의 유효 기간과 도메인은 일치하는가
  4. curl로 실제 연결을 확인했는가

이 네 가지만 순서대로 확인하면 대부분의 인증서 오류를 찾을 수 있다.