🏷️ 관련 기술 태그:#Security#WebCrypto#PEM#JWK#X509#SSL_Certificate#OAuth2#ClientSide
📖

보안 키 & X.509 인증서 변환/검사기 (PEM ↔ JWK) 가이드

OAuth2, OpenID Connect(OIDC) 연동, HTTPS 서버 구축 시 RSA/ECDSA 암호화 키 포맷 변환 및 X.509 SSL/TLS 인증서 검사는 개발자의 필수 작업입니다. PEM(Base64 텍스트)과 JWK(JSON Web Key, RFC 7517) 간의 상호 변환은 기존에 복잡한 OpenSSL CLI 명령어를 필요로 했습니다. 또한 인증서의 만료 남은 일수(D-Day), SAN 도메인 목록, SHA-256 지문을 확인하기 위해 개인키를 외부 서버로 업로드하는 것은 심각한 보안 위험을 초래합니다. 본 도구는 브라우저 내장 Web Crypto API를 기반으로 100% 클라이언트 로컬에서 실행되어, 단 1바이트의 데이터 유출 없이 키 포맷 변환 및 인증서 정밀 검사를 수행합니다.

주요 핵심 기능

  • RSA 및 ECDSA SPKI (공개키) / PKCS#8 (개인키) PEM ➔ JWK 실시간 로컬 변환
  • JWK JSON ➔ PKCS#8 / SPKI PEM 포맷 역변환
  • X.509 SSL/TLS 인증서 상세 검사 (발급 대상 CN, 발급자, 유효기간 D-Day, SHA-256 지문, SAN 도메인)
  • Web Crypto API 기반 100% 클라이언트 연산으로 서버 전송 0Byte 보장

🚀 빠른 사용 방법

  1. 1PEM 키 또는 JWK JSON을 좌측 입력창에 붙여넣습니다.
  2. 2실시간으로 우측 출력창에 변환 결과가 렌더링되며 복사 버튼으로 즉시 사용합니다.
  3. 3X.509 인증서 검사 탭을 선택하고 .crt / .pem 파일을 드래그 앤 드롭합니다.
  4. 4인증서의 남은 만료 일수(D-Day), SHA-256 지문 및 SAN 도메인 목록을 확인합니다.
🔒100% 클라이언트 사이드 보안 아키텍처

모든 암호화 연산은 브라우저 내장 window.crypto.subtle (Web Crypto API)를 사용합니다. 입력한 개인키와 인증서 데이터는 네트워크로 이동하지 않습니다.

💡실무 기술 가이드 & 자주 묻는 질문 (FAQ)

3 개 질문 & 답변 가이드

Q1.PEM과 JWK 포맷의 차이는 무엇인가요?

PEM은 ASN.1 DER 바이너리를 Base64로 인코딩하여 -----BEGIN PUBLIC KEY----- 태그로 감싼 텍스트 형식입니다. JWK(JSON Web Key)는 JSON 객체 형태({"kty":"RSA", "n":"..."})로 키를 표현하며, JWT 검증 및 OAuth2 .well-known/jwks.json 엔드포인트에서 주로 사용됩니다.

Q2.개인키(Private Key)를 붙여넣어도 안전한가요?

네, 완전히 안전합니다. 모든 변환 및 파싱은 사용자의 브라우저 메모리 안에서만 100% 처리되며 서버 통신(Network Request)이 0건이므로 유출 우려가 없습니다.

Q3.X.509 인증서의 SAN(Subject Alternative Names)이란 무엇인가요?

SAN은 하나의 SSL/TLS 인증서로 여러 개의 도메인(예: example.com, api.example.com, *.example.com)을 동시에 보호할 수 있도록 지정하는 인증서 확장 항목입니다.