도구 소개
인증서 서명 요청(CSR)은 SSL/TLS 인증서를 받는 첫 단계입니다. 웹사이트에 HTTPS를 구성하려면 먼저 CSR 파일을 만들어 인증 기관(CA)에 제출해 서명받아야 합니다.
온라인 CSR 생성기는 이 과정을 단순하고 안전하게 만듭니다.
- 완전히 로컬에서 처리: CSR 생성은 모두 브라우저에서 이루어지며, 개인 키는 기기를 떠나지 않습니다
- 여러 알고리즘 지원: RSA(2048/3072/4096비트)와 ECDSA(P-256/P-384/P-521) 서명 알고리즘을 지원합니다
- 유연한 구성: 여러 도메인(SAN), 와일드카드 도메인 등을 추가할 수 있습니다
- 설치 불필요: OpenSSL이나 다른 명령줄 도구 없이 브라우저에서 CSR을 만듭니다
보안 안내
CSR 생성기를 사용하면 개인 키와 CSR이 모두 브라우저에서 로컬로 만들어지며 어떤 서버에도 업로드되지 않습니다. 이 도구는 오프라인에서도 사용할 수 있습니다.
CSR은 언제 만드나요?
다음의 경우 CSR이 필요합니다.
- 새 SSL 인증서 구매: 도메인에 SSL/TLS 인증서를 처음 신청할 때
- 만료가 가까운 인증서 갱신: 기존 인증서가 곧 만료되어 다시 만들어야 할 때
- 도메인 정보 변경: 인증서의 도메인 이름이나 조직 정보를 바꿔야 할 때
- 키 유출 의심: 개인 키 유출이 의심되면 즉시 새 키 쌍과 CSR을 만듭니다
CSR의 해시 알고리즘 선택
해시 알고리즘은 인증서의 디지털 서명을 만드는 데 쓰입니다. 인증서 보안을 위해 알맞은 해시 알고리즘을 고르는 것이 중요합니다. 이 CSR 생성기는 널리 쓰이는 세 가지 해시 알고리즘을 지원합니다.
SHA-256 (권장)
SHA-256은 현재 가장 널리 쓰이는 해시 알고리즘이며, 보안과 성능의 균형이 좋습니다.
- 보안: 256비트 출력으로, 알려진 공격을 막기에 충분합니다
- 호환성: 최신 브라우저와 운영체제가 모두 지원합니다
- 성능: 계산이 빨라 대부분의 경우에 적합합니다
- 권장 용도: 99%의 경우 이 알고리즘을 선택하면 됩니다
SHA-384
SHA-384는 보안이 더 높지만 계산 비용이 약간 큽니다.
- 보안: 384비트 출력으로, 보안 여유가 더 큽니다
- 사용처: 금융, 의료처럼 보안 요구가 매우 높은 분야
- 호환성: 최신 시스템이 모두 지원합니다
SHA-512
SHA-512는 가장 높은 수준의 보안을 제공합니다.
- 보안: 512비트 출력으로, 보안 강도가 가장 높습니다
- 성능: 계산과 검증이 상대적으로 느립니다
- 사용처: 특별한 보안 요구가 있는 아주 적은 경우
권장
대부분의 사용자에게는 SHA-256을 권장합니다. 특별한 규정 요구가 없다면 SHA-256만으로도 충분한 보안을 제공합니다.
CSR의 서명 알고리즘 선택
온라인으로 CSR을 만들 때는 서명 알고리즘을 선택합니다. 주요 선택지는 RSA와 ECDSA입니다.
RSA 알고리즘
RSA는 가장 오래되고 널리 쓰이는 서명 알고리즘입니다.
장점:
- 넓은 호환성: 구형 시스템을 포함해 거의 모든 기기와 브라우저가 지원합니다
- 검증된 안정성: 수십 년 동안 실제로 쓰여 왔습니다
- 높은 CA 지원: 모든 인증 기관이 지원합니다
단점:
- 큰 키 크기: 보안을 위해 보통 2048비트 또는 4096비트 키가 필요합니다
- 성능 부담: 암호화와 복호화가 상대적으로 느립니다
- 큰 인증서 크기: 생성되는 인증서 파일이 더 큽니다
권장 키 길이:
- 2048비트: 표준 선택입니다. 보안과 성능이 좋아 대부분의 경우에 맞습니다
- 4096비트: 보안은 더 높지만 성능 영향이 커서, 보안 요구가 높을 때 적합합니다
ECDSA 알고리즘
ECDSA(Elliptic Curve Digital Signature Algorithm)는 더 현대적인 선택입니다.
장점:
- 짧은 키: 256비트 ECDSA 키는 3072비트 RSA 키와 같은 수준의 보안을 제공합니다
- 좋은 성능: 서명 생성과 검증이 더 빠릅니다
- 대역폭에 유리: 인증서가 작아 전송이 빠릅니다
- 모바일에 적합: 자원이 제한된 기기에 더 잘 맞습니다
단점:
- 호환성: 일부 구형 시스템(예: Windows XP, Android 4.x 이하)은 지원하지 않을 수 있습니다
- CA 지원: 일부 인증 기관은 지원하지 않거나 추가 요금을 받을 수 있습니다
권장 곡선:
- P-256 (secp256r1): 표준 선택이며 널리 지원됩니다
- P-384 (secp384r1): 보안 수준이 더 높습니다
무엇을 고를까요?
권장: RSA 2048
구형 기기를 쓰는 사용자를 포함해 모든 방문자를 지원해야 하면 RSA 2048비트가 가장 안전한 선택입니다. 온라인 CSR 생성기로 RSA 인증서 서명 요청을 쉽게 만들 수 있습니다.
권장: ECDSA P-256
모바일 앱은 성능과 대역폭에 민감한 경우가 많습니다. 크기가 작고 성능이 좋은 ECDSA가 잘 맞습니다. 최신 모바일 기기는 ECDSA를 지원합니다.
권장: RSA 2048 이상
기업 환경은 여러 운영체제 버전을 지원해야 할 수 있어 RSA의 호환성이 분명한 장점입니다. 특별한 보안 요구가 있으면 RSA 4096을 선택하세요.
권장: ECDSA P-256
API 서비스는 보통 최신 클라이언트가 호출하므로 ECDSA의 성능 이점을 살리고 TLS 핸드셰이크 시간을 줄일 수 있습니다.
OpenSSL로 CSR 만들기
편리한 온라인 CSR 생성기를 제공하지만, 명령줄로 CSR을 만드는 방법도 알아 두면 좋습니다. OpenSSL은 가장 흔히 쓰이는 명령줄 도구입니다.
RSA 인증서 서명 요청
# Generate 2048-bit RSA private key and CSR
openssl req -new -newkey rsa:2048 -nodes \
-keyout domain.key \
-out domain.csr
# Generate 4096-bit RSA private key and CSR
openssl req -new -newkey rsa:4096 -nodes \
-keyout domain.key \
-out domain.csr실행하면 다음 정보를 입력하라는 메시지가 나옵니다.
- Country Name(국가 코드, 예: US)
- State or Province(주/도)
- Locality Name(도시)
- Organization Name(조직 이름)
- Organizational Unit(부서)
- Common Name(도메인, 예: autossl.dev)
- Email Address(선택)
먼저 설정 파일 csr.conf를 만듭니다.
# Request configuration section
[req]
default_bits = 2048 # RSA key size in bits
prompt = no # Disable interactive prompts
default_md = sha256 # Hash algorithm for signature
distinguished_name = dn # Reference to DN section below
req_extensions = req_ext # Reference to extensions section
# Distinguished Name (certificate subject information)
[dn]
C = US # Country code
ST = California # State or Province
L = San Francisco # Locality (city)
O = Example Company # Organization name
CN = autossl.dev # Common Name (primary domain)
# Request extensions (additional certificate attributes)
[req_ext]
subjectAltName = @alt_names # Reference to alternative names section
# Subject Alternative Names (additional domains for this certificate)
[alt_names]
DNS.1 = autossl.dev # Primary domain
DNS.2 = www.autossl.dev # Subdomain with www
DNS.3 = *.autossl.dev # Wildcard for all subdomains그런 다음 CSR을 생성합니다.
openssl req -new -nodes \
-newkey rsa:2048 \
-keyout domain.key \
-out domain.csr \
-config csr.confopenssl req -new -newkey rsa:2048 -nodes \
-keyout domain.key -out domain.csr \
-subj "/C=US/ST=California/L=San Francisco/O=Example Company/CN=autossl.dev"참고: 이 방법으로는 SAN(Subject Alternative Name)을 추가할 수 없습니다.
ECDSA 인증서 서명 요청
# Generate ECDSA private key using P-256 curve
openssl ecparam -genkey -name prime256v1 -out domain.key
# Using P-384 curve
openssl ecparam -genkey -name secp384r1 -out domain.key
# Generate CSR based on private key
openssl req -new -key domain.key -out domain.csr생성한 CSR 확인
CSR을 만든 뒤 다음 명령으로 내용을 확인합니다.
# View detailed CSR information
openssl req -text -noout -in domain.csr
# Verify CSR signature
openssl req -verify -in domain.csr
# Extract domain information from CSR
openssl req -noout -subject -in domain.csr개인 키 보안
생성된 개인 키 파일(예: domain.key)은 안전하게 보관하고 다른 사람에게
공개하지 마세요. 파일 권한을 엄격하게 두는 것이 좋습니다.
chmod 600 domain.key
자주 묻는 질문
CSR과 개인 키의 관계는 무엇인가요?
CSR을 만들면 실제로는 키 쌍, 즉 개인 키와 공개 키가 함께 만들어집니다. CSR에는 공개 키와 신원 정보가 들어 있고, 개인 키는 비밀로 유지해야 합니다. CA는 CSR의 정보로 인증서를 발급하며, 그 인증서는 대응하는 개인 키와 함께만 사용할 수 있습니다.
같은 CSR을 다시 쓸 수 있나요?
기술적으로는 가능하지만 권장하지 않습니다. 새 인증서를 신청할 때마다 새 키 쌍과 CSR을 만드는 것이 좋습니다. 인증서가 만료되거나 재발급이 필요하면(예: CA를 바꿀 때) 새 인증서 서명 요청을 만드세요.
CSR을 제출한 뒤 무엇을 보관해야 하나요?
개인 키 파일은 반드시 보관해야 합니다. 인증서가 발급된 뒤 SSL/TLS를 구성하려면 개인 키가 필요합니다. 개인 키를 잃으면 인증서가 있어도 사용할 수 없고, 다시 신청해야 합니다.
온라인 도구와 명령줄 생성의 차이는 무엇인가요?
기능상 차이는 없습니다. 이 CSR 생성기는 브라우저의 Web Crypto API로 키를 만들며, OpenSSL로 만든 결과와 호환됩니다. 온라인 도구는 소프트웨어를 설치하거나 명령을 외우지 않아도 되어 더 직관적입니다.
모범 사례
- 키 길이: RSA는 최소 2048비트, ECDSA는 P-256 이상을 사용합니다
- 정기적인 인증서 갱신: 만료될 때까지 기다리지 말고, 30일 전에 갱신하는 것을 권장합니다
- SHA-256 사용: 특별한 요구가 없으면 SHA-256이 가장 알맞습니다
- SAN 추가: 사이트에 여러 도메인(예: autossl.dev와 www.autossl.dev )이 있으면 CSR을 만들 때 모두 넣습니다
- 개인 키 보호: 엄격한 파일 권한을 쓰고, 필요하면 암호화해 저장합니다
- 개인 키 백업: 개인 키를 안전한 곳에 백업하고, 백업도 같은 수준으로 보호합니다
지금 CSR 생성기로 웹사이트의 인증서 서명 요청을 빠르고 안전하게 만드세요.