본문으로 건너뛰기

SSL 인증서 점검

SSL Certificate Checker

호스트에 접속해 인증서 체인·만료일·프로토콜·암호 지원을 보여 주고 체인 누락을 알려 줍니다.

호스트에 TLS로 접속해 실제로 받은 것을 그대로 보여 줍니다. 리프부터 루트까지의 인증서 체인, 각각의 남은 일수, 서버가 받아 주는 프로토콜 버전과 거부하는 버전, 협상된 암호 스위트까지. 데이터베이스가 아니라 실제 핸드셰이크에서 나온 결과입니다.

☁️ 서버를 사용ssltlscertificatesecurity

이 도구는 우리 서버가 대신 요청합니다. 호스트 이름만 서버로 전송되고, 브라우저의 쿠키나 로그인 정보는 함께 가지 않습니다. 서버는 공인 주소에만 접속하며 사설망·내부 주소로의 요청은 거부합니다.

443이 기본이며, TLS로 바로 시작하는 나머지 포트인 8443·465·993·995·636·853까지만 검사합니다. SNI로 호스트 이름을 보내므로 한 IP에 여러 사이트가 있어도 맞는 인증서를 받습니다.

사용 방법

  1. 호스트를 넣습니다 (443이 아니면 포트까지)

    example.com 또는 example.com:8443. 접속하자마자 TLS로 시작하는 포트(8443·465·993·995·636·853)는 됩니다. 587처럼 STARTTLS로 올라가는 포트는 안 됩니다.

  2. 판정을 보고 항목을 읽습니다

    판정은 아래 항목들의 요약입니다. 각 항목에 양호·참고·주의·문제 표시가 붙습니다. 실무에서 가장 자주 걸리는 둘은 30일 이내 만료와 불완전한 체인입니다.

  3. 리프만 보지 말고 체인 순서를 봅니다

    서버가 보낸 순서 그대로 보여 줍니다. 중간 인증서를 빠뜨린 서버는 크롬에서는 잘 되고(크롬이 알아서 받아 옵니다) curl과 구형 안드로이드에서는 실패합니다. 몇 주씩 "내 컴퓨터에서는 되는데"로 남는 부류의 버그입니다.

  4. 어떤 프로토콜 버전을 받아 주는지 봅니다

    버전마다 따로 접속해 보므로 추론이 아니라 서버에 대한 사실입니다. TLS 1.0·1.1을 받아 준다면 조치할 만한 항목입니다. RFC 8996으로 폐기된 버전입니다.

자주 묻는 질문

인증서는 정상인데 브라우저가 경고합니다

대개 체인·이름·시계 중 하나입니다. 중간 인증서를 서버가 함께 보내는지, 접속하는 이름이 SAN 목록에 있는지(브라우저는 CN을 아예 보지 않습니다), 기기 날짜가 맞는지 확인하세요. 시계가 틀린 기기는 멀쩡한 인증서를 거부합니다.

내부 서버도 확인할 수 있나요?

안 됩니다. 접속은 우리 서버에서 나가고, 그 경로는 사설·루프백 주소를 거부합니다. 내부 호스트라면 openssl s_client -connect host:443 -servername host 로 같은 체인을 로컬에서 볼 수 있습니다.

한 IP에 여러 사이트인데 왜 맞는 인증서가 오나요?

핸드셰이크 때 호스트 이름을 SNI로 보내기 때문입니다. 서버는 그것을 보고 어떤 인증서를 낼지 정합니다. IP 주소만으로는 확인할 수 없는 이유도 같습니다.

폐기 여부도 확인하나요?

하지 않습니다. OCSP와 CRL을 조회하지 않으므로, 폐기됐지만 만료 전인 인증서는 여기서 정상으로 보입니다. 실제 한계입니다. 이 도구가 보여 주는 것은 서버가 무엇을 내줬는지와 체인·날짜가 맞는지까지입니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.