모든 SSL 문서 SSL 및 인증서

인증서 서명 요청(CSR)이란 무엇인가?

CSR(인증서 서명 요청)은 SSL 인증서를 신청하기 위해 인증 기관(CA)에 보내는 인코딩된 데이터 블록입니다. 공개키와 도메인 정보가 포함되어 있습니다. CA는 이를 사용하여 인증서를 생성합니다.

CSR에 포함된 내용

필드예시필수 여부
Common Name (CN)example.com
공개키RSA 또는 ECDSA 공개키
키 알고리즘ECDSA P-256 또는 RSA 2048
조직Your Company LLCDV에서는 선택
국가USDV에서는 선택
SANwww.example.com, api.example.com멀티 도메인용

DV 인증서(Let’s Encrypt 같은)에서는 도메인 이름과 공개키만 중요합니다. 조직 관련 필드는 무시됩니다.

CSR 생성 과정

  1. 키 쌍 생성 — 개인키와 공개키
  2. CSR 구축 — 공개키 + 도메인 정보를 표준화된 형식(PKCS#10)으로 인코딩
  3. CSR 서명 — 개인키로 서명 (일치하는 개인키를 보유하고 있음을 증명)
  4. CA에 전송 — CA가 도메인 소유권을 검증한 후 CSR을 사용하여 인증서 생성

개인키는 시스템을 떠나지 않습니다. CSR에는 공개키만 포함됩니다.

GetHTTPS가 CSR을 자동 처리

기존 도구에서는 OpenSSL로 CSR을 수동 생성해야 합니다:

# 수동 방식 (GetHTTPS에서는 불필요)
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

GetHTTPS에서는 CSR을 보거나 만질 필요가 없습니다. 도구가:

  1. 브라우저에서 키 쌍을 생성 (Web Crypto API)
  2. 도메인 입력으로부터 CSR을 자동 구축
  3. ACME 흐름의 일부로 Let’s Encrypt에 전송
  4. 서명된 인증서를 다운로드할 수 있도록 제공

CSR은 내부 단계입니다 — 도메인만 입력하면 인증서를 받습니다.

CSR 수동 생성 (필요한 경우)

독립적인 CSR이 필요한 경우(상용 CA용이거나, 업로드를 요구하는 플랫폼용):

ECDSA P-256 (권장)

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

RSA 2048

openssl req -new -newkey rsa:2048 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com"

여러 도메인 포함 (SAN)

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

CSR 확인

openssl req -in csr.pem -noout -text

CSR에 포함된 도메인 이름, 키 알고리즘, 키 크기를 보여줍니다.

ACME 프로토콜에서의 CSR

ACME 프로토콜(Let’s Encrypt가 사용)에서 CSR은 도메인 검증이 통과한 후 완료 단계에서 전송됩니다. CA는 CSR의 공개키를 사용하여 인증서를 구축합니다. CSR 형식은 PKCS#10이며, ACME JSON 메시지에서 base64url로 인코딩됩니다.

GetHTTPS에서는 이 전체 과정이 Web Crypto API와 pkijs 라이브러리를 사용한 JavaScript로 이루어집니다. 원시 CSR 바이트를 볼 일이 없습니다.

자주 묻는 질문

CSR 파일을 보관해야 하나요?

아닙니다. CSR은 인증서 요청 중에만 사용됩니다. CA가 인증서를 발급한 후에는 CSR이 역할을 다합니다. 개인키인증서를 보관하세요 — CSR은 버려도 됩니다.

갱신 시 CSR을 재사용할 수 있나요?

기술적으로 가능하지만, 갱신마다 새 키 쌍과 CSR을 생성하는 것이 더 좋습니다. 이는 키 순환 원칙을 따르며 키가 유출되었을 때의 노출을 제한합니다.

CSR과 인증서의 차이점은?

CSR은 요청입니다 — 공개키를 포함하고 CA에 서명을 요청합니다. 인증서는 결과입니다 — 공개키가 도메인에 속한다는 CA의 서명된 선언입니다. CSR은 입력이고, 인증서는 출력입니다.

와일드카드 도메인에 대한 CSR을 생성할 수 있나요?

네. Common Name으로 *.example.com을 사용합니다:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout privkey.pem -out csr.pem -nodes \
  -subj "/CN=*.example.com"

GetHTTPS에서는 CSR을 수동으로 생성할 필요 없이 도메인으로 *.example.com을 입력하면 GetHTTPS가 CSR을 자동으로 처리합니다.

CSR의 “key usage”는 무엇인가요?

키 사용 확장은 인증서의 용도를 지정합니다 — 일반적으로 TLS 인증서에는 “Digital Signature”와 “Key Encipherment”입니다. GetHTTPS와 대부분의 ACME 클라이언트는 이를 기본적으로 올바르게 설정합니다. 특정 요구 사항이 있는 상용 CA를 위해 수동으로 CSR을 생성하는 경우에만 키 사용에 대해 고민하면 됩니다.

관련 기사

SSL 및 인증서 2026-05-07
ECC vs RSA 인증서: 어떤 것을 선택해야 할까요?
ECC(ECDSA P-256)와 RSA(2048/4096비트) 인증서를 비교합니다. ECC 키는 더 작고 빠릅니다. GetHTTPS가 ECC를 기본으로 사용하는 이유와 RSA가 여전히 적합한 경우를 알아보세요.
시작하기 2026-05-08
무료 SSL 인증서 받는 방법 (단계별 가이드)
5분 만에 Let's Encrypt에서 무료 SSL 인증서를 발급받으세요 - 소프트웨어 설치 불필요, 계정 생성 불필요. 4가지 방법, 두 가지 챌린지 유형, 6개 플랫폼 설치, 문제 해결을 포함하는 완전 가이드입니다.
SSL 및 인증서 2026-05-07
SSL/TLS 작동 원리: TLS 핸드셰이크 설명
TLS 핸드셰이크의 시각적 설명 - 브라우저와 서버가 밀리초 안에 암호화 연결을 설정하는 방법. TLS 1.2, TLS 1.3, 세션 재개, 순방향 비밀성을 다룹니다.
브라우저에서 무료 SSL 인증서 받기
설치 불필요, 계정 불필요. 개인키는 항상 기기에 남습니다.
인증서 발급