SSL 인증서 디코더 — PEM, CRT, CSR 파일 읽기
PEM 인증서, 체인, CSR을 붙여 넣거나 .crt 파일을 업로드해 SAN, 만료일, 발급자, 키 유형, 지문을 확인하세요. 브라우저에서 디코딩합니다.
인증서와 CSR만 있으면 됩니다. 웹사이트에 개인 키를 절대 붙여 넣지 마세요. 여기에 붙여 넣더라도 무시됩니다.
전적으로 브라우저에서 실행됩니다. 인증서는 기기에서 디코딩되며, 아무것도 업로드되지 않고 OCSP나 CT 조회도 하지 않습니다. 모든 무료 도구 보기.
문제를 발견하셨거나 개선할 점이 있나요? 모든 메시지를 읽고 빠르게 고칩니다.
이 무료 SSL 인증서 디코더는 X.509 인증서를 읽어 그 안의 내용을 보여 줍니다. 인증서가 적용되는 도메인 이름(주체 대체 이름), 발급자, 만료일과 남은 일수, 키 유형과 크기, 확장, SHA-256 및 SHA-1 지문입니다. PEM 텍스트, fullchain.pem의 전체 체인, 또는 CA에 보내기 전의 인증서 서명 요청(CSR)을 붙여 넣으세요. .crt, .cer, .der, .pem 파일도 업로드할 수 있습니다.
디코딩은 브라우저에서 이루어지며, 아무것도 업로드되지 않고 네트워크 조회도 하지 않습니다. 그래서 이 도구는 인증서에 적힌 내용을 알려 줄 뿐, 신뢰할 수 있는지는 판단하지 않습니다. 서명을 검증하거나, 폐기 여부(OCSP 또는 CRL)를 확인하거나, 인증서 투명성 로그를 조회하지 않습니다. 체인의 경우 각 인증서의 발급자 이름이 다음 인증서의 주체와 일치하는지 확인해 가장 흔한 순서 오류를 잡아냅니다. RSA만 처리하는 많은 JavaScript 디코더와 달리 RSA, ECDSA, Ed25519 인증서를 모두 읽습니다.
사용 방법
- -----BEGIN CERTIFICATE-----로 시작하는 인증서(여러 개도 가능)나 -----BEGIN CERTIFICATE REQUEST-----로 시작하는 CSR을 붙여 넣으세요. 또는 업로드를 클릭해 .crt, .cer, .der, .pem 파일을 고르세요.
- 각 인증서의 색상 상태 줄을 확인하세요: 유효(남은 일수), 곧 만료(30일 미만), 만료됨, 아직 유효하지 않음.
- 주체 대체 이름에 인증서가 적용되어야 할 모든 호스트 이름이 있는지 확인하세요. 브라우저는 일반 이름(CN)을 무시합니다.
- 체인이라면 체인 순서 상자를 확인하세요: 서버 인증서가 먼저 오고, 그 뒤에 각 발급자가 차례로 와야 합니다.
- 각 인증서 카드의 버튼으로 지문이나 개별 인증서의 PEM을 복사하세요.
자주 묻는 질문
SSL 인증서 만료일은 어떻게 확인하나요?
여기에 인증서를 붙여 넣고 유효 종료 줄과 그 위의 상태(남은 일수 표시)를 확인하세요. 실제 사이트가 제공하는 인증서를 얻으려면 openssl s_client -connect example.com:443 -servername example.com -showcerts를 실행하거나, 브라우저에서 자물쇠(또는 사이트 설정 아이콘)를 클릭하고 인증서 뷰어를 열어 내보내세요. 명령줄에서 openssl x509 -in cert.pem -noout -enddate로 확인할 수도 있습니다.
PEM, DER, CRT, CER은 어떻게 다른가요?
PEM과 DER은 인코딩 방식이고, CRT와 CER은 파일 확장자일 뿐입니다. DER은 인증서의 바이너리 형식입니다. PEM은 같은 바이트를 Base64로 바꿔 -----BEGIN CERTIFICATE-----와 -----END CERTIFICATE----- 줄 사이에 넣은 것이며, PEM 파일 하나에 인증서 여러 개를 담을 수 있습니다. .crt나 .cer 파일은 어느 인코딩이든 될 수 있습니다(Windows에서 .cer은 보통 DER입니다). 이 디코더는 둘 다 받습니다.
주체 대체 이름(SAN)이란 무엇인가요?
SAN 확장은 example.com, www.example.com, *.example.com처럼 인증서가 유효한 모든 호스트 이름과 IP 주소를 나열합니다. 브라우저는 이 목록만 확인합니다. 주체의 일반 이름(CN)은 Chrome 58(2017)부터 무시됩니다. 일치하는 SAN이 없는 인증서는 일반 이름이 맞더라도 이름 불일치 오류가 납니다.
인증서 지문이란 무엇인가요?
DER 형식의 인증서 전체에 대한 해시로, 16진수로 표시됩니다. 정확히 하나의 인증서를 식별합니다. 한 바이트만 달라도 지문이 바뀝니다. SHA-256 지문이 현재 표준이며, 일부 도구와 오래된 시스템은 여전히 SHA-1 지문을 표시합니다. 지문은 비밀이 아닙니다. 여기 표시되는 SPKI 핀은 다릅니다. 공개 키만 해시하므로 같은 키로 인증서를 갱신하면 그대로 유지됩니다.
SSL 인증서는 얼마나 오래 유효할 수 있나요?
공개적으로 신뢰되는 TLS 인증서의 CA/Browser Forum 한도는 2020년 9월부터 398일이었습니다. Ballot SC-081은 이를 단계적으로 줄입니다: 2026년 3월 15일부터 발급되는 인증서는 200일, 2027년 3월 15일부터 100일, 2029년 3월 15일부터 47일입니다. 사설 또는 내부 CA의 인증서는 이 한도를 따르지 않습니다. 이 도구는 리프 인증서가 발급일 기준 한도를 넘으면 경고합니다.
여기에 인증서를 붙여 넣어도 안전한가요?
네. 인증서는 원래 공개되는 것입니다. 사이트 방문자 모두가 받습니다. 디코딩도 브라우저에서 로컬로 이루어집니다. 개인 키는 다릅니다. 어떤 웹사이트에도 개인 키를 붙여 넣지 마세요. 붙여 넣은 내용에 개인 키가 들어 있으면 이 도구는 무시하고 알려 줍니다.
인증서 읽기: 각 필드의 의미
• 주체와 발급자: 고유 이름(DN). CN은 일반 이름, O는 조직, C는 국가입니다. 자체 서명 인증서나 루트 인증서에서는 둘이 같습니다.
• 유효 기간: UTC 기준 Not Before와 Not After. 클라이언트는 이 기간 밖의 인증서를 거부하므로, 기기 시계가 틀리면 유효한 인증서도 실패할 수 있습니다.
• 일련번호: CA마다 고유하며, 폐기 목록이 참조하는 값입니다.
• 공개 키: RSA 키는 2048비트 이상입니다. ECDSA 키는 보통 P-256이나 P-384 같은 이름 있는 곡선을 쓰며, 비슷한 강도에 훨씬 짧습니다. Ed25519는 아직 공개 TLS에서는 거의 쓰이지 않습니다.
• 키 용도와 확장 키 용도: 키로 할 수 있는 일. TLS 서버 인증서에는 TLS 웹 서버 인증이, CA 인증서에는 인증서 서명이 필요합니다.
• 기본 제약 조건: CA:TRUE는 다른 인증서를 발급할 수 있는 인증서를 뜻하며, 경로 길이는 그 아래에 올 수 있는 중간 인증서 수를 제한합니다.
• 기관 정보 액세스(AIA): 발급자 인증서를 받을 위치(CA Issuers)와 폐기 여부를 문의할 위치(OCSP).
체인 문제 해결
한 브라우저에서는 되는데 다른 브라우저나 curl에서는 실패하는 "인증서를 신뢰할 수 없음" 오류는 대부분 서버가 보내는 체인 때문입니다. 서버는 자신의 인증서를 먼저 보내고, 그다음 그것을 발급한 중간 인증서를 차례로 보내야 합니다. 클라이언트가 이미 가지고 있는 루트는 보낼 필요가 없습니다. 브라우저는 빠진 중간 인증서를 직접(AIA URL로) 가져올 때도 있지만, curl, Java, Python, 대부분의 모바일 앱은 그러지 못해 실패합니다.
서버의 전체 체인(Let’s Encrypt는 fullchain.pem, 다른 CA는 내 인증서 뒤에 CA 번들)을 여기에 붙여 넣고 각 "발급자" 줄이 초록색인지 확인하세요. 순서가 틀렸다면 서버 설정에서 PEM 블록 순서를 바꾸세요. 빠진 연결이 있다면 CA가 제공하는 중간 인증서를 추가하세요.
관련 무료 도구
- JWT 디코더 — JWT의 헤더와 페이로드를 디코딩하고, 만료 시간을 알기 쉽게 확인하고, HS·RS·PS·ES 서명을 검증하거나 새 토큰에 서명하세요. 브라우저 밖으로 나가는 것은 없습니다.
- Base64 인코더 / 디코더 — 텍스트나 파일을 Base64로 인코딩하고, 이미지를 CSS·<img> 코드와 함께 data URI로 바꾸고, Base64를 미리보기 가능한 파일로 디코딩하세요. 어떤 데이터도 브라우저 밖으로 나가지 않습니다.
- 비밀번호 생성기 — 강력한 무작위 비밀번호, 기억하기 쉬운 패스프레이즈, PIN을 생성하세요. 모든 처리가 브라우저에서 이루어지며 아무것도 전송되거나 저장되지 않습니다.
- curl 코드 변환 — Chrome의 "cURL로 복사"를 포함한 curl 명령을 붙여 넣으면 같은 요청을 Python, JavaScript, Node, Go, PHP, Ruby, Java, C#, wget, HTTPie 코드로 만들어 줍니다.
- YAML 검사기 — 오류마다 정확한 줄과 열을 알려 주는 YAML 검사로, 파서가 조용히 받아들이는 실수(yes/no 불리언, 탭, 중복 키)까지 잡아내세요.