SSL 인증서 점검
도메인의 SSL 인증서 만료일·발급기관·체인·TLS 버전을 실시간 점검합니다.
SSL 인증서 점검은 도메인에 설치된 TLS/SSL 인증서를 실시간으로 읽어 만료일·발급기관·주체(CN)·대체 이름(SAN)·TLS 프로토콜·키 길이를 한눈에 보여주는 도구입니다. 서버가 실제로 응답하는 인증서를 그대로 확인하므로, 브라우저 자물쇠 아이콘 뒤에서 무슨 일이 벌어지는지 정확히 알 수 있습니다.
가장 중요한 신호는 만료까지 남은 일수(D-day)와 체인 신뢰 여부입니다. 만료가 임박하면 갱신 일정을, 신뢰 실패(authorized=false)면 중간 인증서 누락이나 호스트 이름 불일치를 의심해야 합니다. 도메인만 입력하면 됩니다(프로토콜·경로 불필요).
만료일과 갱신 주기
공개 신뢰 인증서는 보통 90일(Let's Encrypt)에서 1년 사이의 유효기간을 가집니다. 만료된 인증서는 브라우저가 빨간 경고를 띄워 방문자를 차단하므로, 만료 30일 전부터는 갱신 상태를 주시해야 합니다. 이 도구는 남은 일수를 D-day로 크게 표시하며 30일 이하면 주의, 만료되면 위험으로 알려줍니다.
체인 신뢰와 호스트 이름
인증서는 단독으로 신뢰되지 않고, 서버가 보낸 인증서가 루트까지 이어지는 체인으로 검증됩니다. 흔한 실패 원인은 다음과 같습니다.
- 중간(intermediate) 인증서를 서버가 함께 보내지 않음 → 체인 불완전
- 접속한 도메인이 인증서의 CN/SAN에 없음 → 이름 불일치
- 유효기간이 지났거나 아직 시작되지 않음
신뢰 실패 시 표시되는 authorizationError 코드(예: 인증서 만료, 자체 서명, 이름 불일치)로 원인을 좁힐 수 있습니다.
SAN(대체 이름)의 역할
현대 브라우저는 인증서의 SAN(Subject Alternative Name) 목록만 호스트 이름 검증에 사용합니다. CN에 도메인이 있어도 SAN에 없으면 신뢰되지 않습니다. 와일드카드(*.example.com)와 여러 도메인을 한 인증서에 담는 경우가 많으니, 점검 대상 도메인이 SAN 목록에 실제로 포함되는지 확인하세요. 이미 보유한 인증서 파일의 SAN을 읽으려면 SSL 인증서 디코더에 붙여넣고, 같은 호스트가 허용하는 프로토콜은 TLS 버전 지원 점검으로 함께 확인하세요.
authorizationError 코드 해석표
신뢰 검증이 실패하면 Node의 TLS 스택이 표준화된 오류 코드를 돌려줍니다. 가장 자주 보이는 코드와 실제 의미·조치는 다음과 같습니다.
| 코드 | 의미 | 조치 |
|---|---|---|
CERT_HAS_EXPIRED | 유효기간이 지남(notAfter 경과) | 즉시 갱신·재배포 |
UNABLE_TO_VERIFY_LEAF_SIGNATURE | 중간 인증서가 누락되어 체인을 못 이음 | fullchain.pem(서버+중간)으로 재설치 |
DEPTH_ZERO_SELF_SIGNED_CERT | 자체 서명 인증서(공개 CA 발급 아님) | 공개 CA 인증서로 교체 |
ERR_TLS_CERT_ALTNAME_INVALID | 접속 호스트가 SAN 목록에 없음 | SAN에 도메인 추가 후 재발급 |
CERT_NOT_YET_VALID | 발급 시작 전(notBefore 미도래, 시계 오차 흔함) | 서버·클라이언트 시간(NTP) 확인 |
SELF_SIGNED_CERT_IN_CHAIN | 사설 루트가 체인에 섞임(기업 프록시 등) | 공개 루트로 끝나는 체인으로 정리 |
읽어보는 예시
www.example.com을 점검했을 때 결과가 다음과 같다고 합시다.
- Subject(CN):
example.com/ Issuer:R3, Let's Encrypt - SAN:
example.com,www.example.com - notAfter: 78일 남음 / Protocol:
TLSv1.3/ 키:EC P-256 - authorized:
true
해석: 발급기관이 공개 CA(Let's Encrypt)이고 접속 호스트 www.example.com이 SAN에 포함되므로 이름 검증 통과, 78일이 남아 갱신은 아직 여유, TLS 1.3·ECDSA로 키 강도도 양호 → 전부 정상입니다. 반대로 SAN에 www가 없고 example.com만 있었다면 authorized는 false, 오류는 ERR_TLS_CERT_ALTNAME_INVALID가 됩니다.
흔한 실수 / 함정
가장 흔한 오해는 "만료일만 멀면 안전하다"는 생각입니다. 만료가 100일 넘게 남아 있어도 중간 인증서를 빼고 leaf 인증서만 설치하면 authorized=false가 됩니다. 게다가 본인 PC 브라우저는 이전에 받아둔 중간 인증서를 캐시해 두기 때문에 "나는 잘 열린다"고 착각하기 쉽습니다. 항상 D-day와 authorized를 함께 보고, 설치 시에는 leaf가 아니라 fullchain(서버+중간)을 올리세요.
자주 묻는 질문
포트를 바꿔 점검할 수 있나요?
authorized가 false인데 브라우저에서는 잘 열려요.
내부(사내) 서버 인증서도 점검되나요?
입력한 도메인이 외부로 저장되나요?
관련 가이드
- SSL 인증서 오류(NET::ERR_CERT…) 원인과 해결브라우저 SSL 오류와 authorized=false의 흔한 원인 5가지와 각각의 해결 방법.
- SSL 인증서 발급 방법: Let's Encrypt 무료부터 유료까지무료(Let's Encrypt·certbot)와 유료 인증서의 차이, 발급 절차(CSR·검증)와 자동 갱신 설정.