CSR 디코더
인증기관(CA)이 TLS 인증서에 서명하기 전에, 인증서에 넣을 주체 정보와 공개 키, 그리고 해당 비공개 키를 보유하고 있음을 증명하는 서명이 담긴 base64 데이터 블록인 인증서 서명 요청(CSR)을 제출합니다. 이 디코더는 PEM 형식의 CSR을 받아 주체의 각 필드와 공개 키 매개변수를 표시하므로, CA에 제출하기 전에 공통 이름, 조직, 키 크기를 확인할 수 있습니다.
CSR 디코딩 방법
-
1
CSR 붙여넣기
`-----BEGIN CERTIFICATE REQUEST-----`와 `-----END CERTIFICATE REQUEST-----` 마커를 포함하세요. 공백은 허용됩니다.
-
2
디코더 실행
요청이 구문 분석되고 주체의 각 필드와 공개 키가 읽힙니다.
-
3
출력 확인
공통 이름, 조직 같은 주체 필드와 키 알고리즘 및 크기를 확인하세요.
-
4
결과에 따라 조치
주체나 키가 잘못된 것 같으면 CA에 제출하기 전에 CSR을 다시 생성하세요.
디코더가 표시하는 내용
CSR은 세 개의 상위 구성 요소로 이루어진 ASN.1 구조(PKCS #10)입니다. 디코더는 여기서 두 가지를 읽습니다:
- 주체(subject): 요청된 식별 이름(Distinguished Name) 필드로, 보통 국가(C), 조직(O), 조직 단위(OU), 지역(L), 주(ST), 공통 이름(CN)입니다.
- 공개 키: 알고리즘(RSA, EC, DSA)과 비트 단위 키 크기입니다.
CSR 안의 서명은 제출자가 해당 사설 키를 보유하고 있음을 CA에 증명하는 역할을 합니다. 이 디코더는 서명을 표시하지 않으며, 검증은 CA가 요청을 처리할 때 수행합니다.
출력 예시
일반적인 도메인 인증서 요청의 경우 출력은 다음과 같습니다:
Subject: commonName=www.example.com, organizationName=Example Inc., countryName=US
Key bits: 2048
Key type: RSA
주체의 정확한 속성 이름은 요청 생성 방식에 따라 다릅니다.
확인용 필드
- 공통 이름(CN): 주요 호스트 이름이어야 합니다. 현대 브라우저는 CN를 무시하고 오직 SAN만을 확인하지만, 많은 인증기관(CA)은 여전히 유효한 CN을 요구합니다.
- 주체 대체 이름(SAN): 인증서가 보호할 모든 호스트 이름과 와일드카드를 나열합니다. 브라우저는 CN이 아닌 SAN을 기준으로 매칭합니다.
- 국가(C): 전체 이름이 아닌 2자리 ISO 코드(US, GB, DE). 공인 기관(CA)은 잘못된 코드를 거부합니다.
- 키 길이: RSA 2048은 최소 요구 길이이며, 보안 수준을 높이려면 3072 또는 4096을 사용할 수 있습니다. ECDSA P-256는 우수한 현대적 대안으로서 더 작은 인증서를 생성합니다.
- 서명 알고리즘: SHA-256 이상을 사용해야 합니다. SHA-1은 이미 오래전에 사용이 중단되었으며, 사용하지 않도록 권장됩니다.
주체 대체 이름(SAN)에 대하여
디코더는 요청의 주체를 표시하지만 SAN 확장은 표시하지 않습니다. 브라우저는 CN이 아닌 SAN을 기준으로 인증서를 매칭하므로, 인증서에 추가 호스트 이름이 필요하면 요청 생성 시 포함하세요. 예:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr -addext "subjectAltName=DNS:example.com,DNS:www.example.com"
디코더가 CSR을 구문 분석하지 못하는 경우
가장 흔한 원인은 잘렸거나 손상된 PEM 블록입니다:
- 텍스트가 잘린 경우: 두 마커를 포함한 전체 블록을 다시 붙여넣으세요.
- 줄 바꿈이 삽입된 경우: 생성된 그대로의 블록을 붙여넣으세요.
- 내용이 다른 경우: 실수로 공개 키, 인증서 또는 사설 키를 붙여넣으면 CSR로 구문 분석되지 않습니다.
일치하는 키 생성
CSR은 항상 사설 키와 함께 생성됩니다. 일반적인 명령어는 다음과 같습니다:
openssl req -new -newkey rsa:2048 -nodes -keyout example.key -out example.csr
또는 ECDSA의 경우:
openssl req -new -newkey ec:<(openssl ecparam -name prime256v1) -nodes -keyout example.key -out example.csr
개인 키를 철저히 보호해야 합니다. 개인 키가 유출될 경우 인증서는 반드시 취소되어야 합니다.
자주 묻는 질문
CSR에는 공개 정보(공개 키, 대상, SAN)와 서명만 포함되므로 CA와 공유하거나 디코더에 붙여넣는 데 있어 안전합니다. 비밀로 유지해야 할 것은 일치하는 사설 키입니다.
아니요. 이 디코더는 BEGIN/END CERTIFICATE REQUEST 마커가 있는 텍스트 PEM 형식을 대상으로 합니다. 이진 DER 요청을 사용하려면 먼저 PEM으로 변환하세요. 예: openssl req -in request.der -inform DER -out request.pem.
아니요. 대부분의 공용 인증기관(Let’s Encrypt, DigiCert, Sectigo)은 도메인 검증 인증서의 경우 CN 및 SAN만을 요구하며, O, OU, L, ST, C는 무시합니다. 조직 검증 인증서와 확장 검증 인증서는 이러한 필드들을 별도로 확인합니다.
대부분은 붙여넣은 텍스트가 잘렸거나 줄 바꿈이 삽입되었거나, CSR 대신 키나 인증서를 붙여넣었기 때문입니다. 두 마커 사이의 전체 블록을 다시 붙여넣으세요.
관련 도구
FPS 카운터
requestAnimationFrame으로 브라우저 FPS를 측정하세요. 스무딩, 최소/최대 프레임레이트, 경고 임계값, 선택형 그래프를 제공합니다. 업로드나 API 없이 로컬에서 실행됩니다.
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
ASCII 이진수 변환기
ASCII 문자열을 이진수 표현으로 변환하세요. 각 문자는 8비트가 되고 공백으로 구분되어 프로토콜 추적이나 과제에 바로 붙여넣기 좋습니다.
색상 틴트 생성기
기준 색의 밝은 틴트를 생성합니다. 디자인 시스템 토큰, 배경, 호버 상태를 위한 3-20단계 스케일.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
이 도구는 다른 언어로도 제공됩니다
- CSR-Decoder [DE]
- Decodificador de CSR [PT]
- Bộ giải mã CSR [VI]
- CSR-avkodare [SV]
- ตัวถอดรหัส CSR [TH]
- Dekoder CSR [ID]
- Decodificador de CSR [ES]
- CSRデコーダー [JA]
- أداة فك ترميز CSR [AR]
- Décodeur CSR [FR]
- CSR-decoder [NL]
- Dekoder CSR [PL]
- Decoder CSR [IT]
- Декодер CSR [RU]
- CSR Çözücü [TR]
- CSR解码器 [ZH]
- CSR Decoder [EN]