GrepBoardTools GrepBoard 매뉴얼 ↗ Log ↗

Tools / 네트워크

인증서(PEM · X.509) 풀기

-----BEGIN CERTIFICATE----- 블록을 하나 이상(fullchain.pem 그대로) 붙여 넣거나 .pem · .crt · .der 파일을 엽니다.

입력한 값은 브라우저 안에서만 계산하고 서버로 보내지 않습니다.

🔒 인증서는 이 브라우저 안에서 읽습니다 — 아무것도 올리지 않습니다.

무엇을 하나

PEM 인증서를 붙여 넣거나 .pem · .crt · .der 파일을 열면 openssl x509 -text 로 보던 내용 중 자주 보는 것만 표로 보여 줍니다. 여러 개를 이어 붙인 체인(fullchain.pem)은 인증서마다 풀고, 앞 인증서의 발급자가 다음 인증서의 주체와 이어지는지 확인합니다. 개인키가 섞여 있으면 아무것도 풀지 않고 경고만 냅니다.

예시

보이는 것뜻
CN = ISRG Root X1 · 자체 서명주체와 발급자가 같은 루트 인증서
29일 남음 — 곧 갱신남은 시간을 날 단위로 내린 값이 30일 아래
DNS:example.com · IP:192.0.2.10이 인증서로 접속할 수 있는 이름. 브라우저는 CN 이 아니라 여기를 봅니다
EC 256비트 (P-256) · ecdsa-with-SHA256공개키 종류 · 크기, 발급자가 서명에 쓴 알고리즘
CA — 인증서를 발급할 수 있음 · 경로 길이 ≤ 0중간 인증서. 그 아래로는 최종 인증서만 발급
#1 의 발급자 = #2체인 순서가 맞음

흔한 실수

  • cert.pem 만 nginx 에 넣기 — 중간 인증서가 빠지면 일부 클라이언트가 「unable to get local issuer certificate」로 거부합니다. Let's Encrypt 라면 fullchain.pem 을 씁니다. 여기에 붙여 넣으면 체인이 하나뿐인지 바로 보입니다.
  • 체인을 거꾸로 이어 붙이기 — 서버 인증서가 맨 앞, 그다음 그것을 발급한 중간 인증서 순서여야 합니다.
  • CN 만 있고 SAN 이 없는 인증서 — 지금 브라우저는 CN 을 보지 않아서 이름이 맞아도 오류가 납니다.
  • 개인키(privkey.pem)를 붙여 넣기 — 인증서를 확인하는 데 개인키는 필요 없습니다.

어떻게 확인했나

DER 읽개는 이 도구에 맞춰 직접 짰고, 길이가 맞지 않거나 남는 바이트가 있으면 짐작하지 않고 멈춥니다. 공개 전에 OpenSSL 3.0.13 으로 인증서 55개를 만들었습니다 — RSA 1024~4096 · RSA-PSS · DSA · ECDSA P-256/P-384/P-521 · Ed25519 · Ed448, SAN 20개, IPv4 · IPv6 SAN, 한글 이름, 만료됐거나 아직 유효 전인 것, 2050년 뒤 날짜, 3단 체인 둘. 여기에 Ubuntu 24.04 의 시스템 CA 121개를 더해 openssl x509 -noout -text -fingerprint -sha256 결과와 주체 · 발급자 · 날짜 · 일련번호 · 지문 · 키 · 서명 · 확장을 하나씩 비교했습니다. 체인은 openssl verify 가 통과하는 순서만 「이어짐」으로 나와야 합니다 — 모두 3244번. 체인 확인은 이름과 키 식별자만 보고 서명은 검사하지 않습니다.

자주 묻는 것

남은 일수는 어떻게 세나요?

만료 시각(notAfter, UTC)에서 지금을 뺀 뒤 다 채운 날만 셉니다. 30일짜리 인증서를 방금 받았다면 29일로 나옵니다. 30일 아래면 「곧 갱신」으로 표시합니다.

서버가 보내는 인증서는 어떻게 꺼내 보나요?

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 을 실행하면 서버가 보내는 체인이 PEM 으로 나옵니다. 그 BEGIN … END 블록들을 여기에 붙여 넣습니다. Let's Encrypt 를 쓰는 서버라면 파일은 /etc/letsencrypt/live/<도메인>/fullchain.pem 입니다.

인증서가 서버로 가나요?

아니요. 붙여 넣은 글과 연 파일은 이 브라우저 안에서만 읽고, 서버로 보내거나 방문 통계 · 광고에 넘기지 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.