SSL 인증서 이해하기

TLS 인증서의 이름·유효 기간·검증 결과를 읽고 자동 갱신을 확인하는 순서입니다. CDN과 원본 서버의 인증서도 구분합니다.

PPORT ·

빠른 사용법

  1. 실제 접속 도메인을 확인하세요.
  2. 기간·이름·검증 결과를 살펴보세요.
  3. 갱신 후 제공되는 인증서도 확인하세요.

TLS와 인증서의 역할

TLS는 통신을 보호하는 프로토콜이고 인증서는 상대 이름과 공개키를 확인하는 데 쓰입니다. 흔히 SSL 인증서라고 부르지만 현대 HTTPS에서는 TLS를 사용합니다. 유효한 인증서가 사이트 내용이나 사업자를 보증하는 것은 아닙니다.

검사 결과별 확인 사항

항목읽는 방법
유효 기간시작일과 만료일 모두 확인합니다. 남은 일수는 날짜 차이를 내림한 값입니다.
SAN / 호스트명요청한 이름에 사용할 수 있는 인증서인지 확인합니다.
검증 결과서버의 신뢰 저장소와 TLS 검증 환경을 기준으로 합니다. 오류 원인을 함께 읽습니다.
TLS 버전·암호 스위트이번 연결에서 협상된 값이며 서버의 모든 지원 조합을 나열한 것은 아닙니다.

자동 갱신 확인 순서

  1. 현재 서비스가 제공하는 인증서의 실제 만료일을 확인합니다.
  2. 발급 도구의 갱신 작업과 최근 성공·실패 로그를 확인합니다.
  3. 사용한 검증 방식에 맞는 DNS 또는 HTTP 검증 경로가 유지되는지 확인합니다.
  4. 갱신 파일이 실제 웹서버·프록시에 반영되었는지 확인합니다.

CDN과 원본 서버를 구분하세요

CDN이 TLS를 종료하면 방문자는 CDN 인증서를 봅니다. 원본 서버의 인증서가 별도로 존재할 수 있으므로 한쪽 갱신만으로 전체 경로가 갱신되었다고 보지 마세요. 검사 도구도 연결 위치·주소·신뢰 저장소에 따라 다른 결과를 볼 수 있습니다.

인증서 파일과 실제 응답 비교

갱신된 파일이 있다고 해서 외부 HTTPS가 그 파일을 제공한다는 뜻은 아닙니다. 아래 첫 명령은 디스크의 PEM 파일을 읽고, 두 번째는 도메인의 443 포트에 연결해 리프 인증서 정보를 출력합니다. example.com과 파일 경로를 실제 값으로 바꾸고 subject, issuer, dates, SHA-256 fingerprint를 비교하세요.

s_client의 -servername은 SNI로 호스트 이름을 전달합니다. 이 파이프 명령은 인증서 정보를 살펴보기 위한 것으로 호스트명·신뢰 체인 검증 성공 판정은 아닙니다. CDN·로드밸런서가 있다면 외부 인증서와 원본 파일이 다른 것이 정상일 수 있습니다. 이 경우 먼저 TLS가 종료되는 지점을 구분하세요.

OpenSSL · PEM
openssl x509 -in /path/to/fullchain.pem -noout -subject -issuer -dates -fingerprint -sha256
Linux / macOS · OpenSSL · SNI
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -fingerprint -sha256

인증서 오류를 좁히는 순서

만료 오류라면 시작일·만료일과 장치 시간을 확인합니다. 이름 불일치라면 실제 접속한 이름이 SAN에 포함되는지 봅니다. 신뢰 오류라면 중간 인증서 제공 여부와 클라이언트의 신뢰 저장소를 확인합니다. 인증서가 유효해도 HTTP 오류나 애플리케이션 로그인 실패는 별개의 문제입니다.

설명용 상황: 갱신 파일의 만료일은 바뀌었는데 외부 응답은 이전 만료일이라면, 웹서버가 읽는 경로·프록시 계층·재로드 여부를 확인할 근거가 됩니다. 곧바로 재발급을 반복하지 말고 실제로 제공되는 인증서를 먼저 비교하세요. 설정 변경 후에는 서비스에 맞는 구성 검사에 성공한 뒤 재로드합니다.

공식 참고 자료

이 글과 함께 쓰는 도구