본문 바로가기
인프라/OpenSSL & 인증서

OpenSSL 사설 와일드카드 SSL 인증서 만들기

by 표딩 2025. 3. 24.

이번 포스팅은 OpenSSL를 활용하여 사설 와일드카드 SSL 인증서는 만들어 보겠습니다. 개발 환경에서 HTTPS를 적용하려면, 사설 인증서를 발급해 사용하는 것이 일반적입니다. 이 글에서는 OpenSSL을 사용해 Root CA, Intermediate CA, 서버 인증서를 발급하는 전체 과정을 다룹니다.

 

1. 개발환경 버전

구분 버전
운영체제 Windows 10 or 11
OpenSSL OpenSSL 3.4.1
와일드카드 도메인 *.mydomain.com

 

 

2. 사설 와일드카드 SSL 인증서 만들기

▶ 디렉토리 만들기

PS C:\Users\admin> mkdir D:\myCA\root, D:\myCA\intermediate, D:\myCA\server
PS C:\Users\admin> cd D:\myCA

 

 

SAN 설정 파일 만들기 (*.mydomain.com)

PS D:\myCA> @"
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[ req_distinguished_name ]
C = KR
L = Seoul
O = MyCompany
CN = *.mydomain.com

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = *.mydomain.com
"@ | Set-Content server\san.cnf -Encoding ascii

 

 

▶ EXT 설정 파일 만들기

PS D:\myCA> @"
[v3_ca]
basicConstraints = critical, CA:TRUE
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
"@ | Set-Content intermediate\ext.cnf -Encoding ascii

 

 

▶ 루트 CA 키 & 인증서 생성

PS D:\myCA> openssl genpkey -algorithm RSA -out root\rootCA.key -pkeyopt rsa_keygen_bits:4096
PS D:\myCA> openssl req -x509 -new -key root\rootCA.key -sha256 -days 3650 -out root\rootCA.crt -subj "/C=KR/O=MyRootCA/CN=MyRootCA"

 

 

 중간 CA 키 & 인증서 생성

PS D:\myCA> openssl genpkey -algorithm RSA -out intermediate\intermediateCA.key -pkeyopt rsa_keygen_bits:4096
PS D:\myCA> openssl req -new -key intermediate\intermediateCA.key -out intermediate\intermediateCA.csr -subj "/C=KR/O=MyRootCA/CN=MyIntermediateCA"
PS D:\myCA> openssl x509 -req -in intermediate\intermediateCA.csr -CA root\rootCA.crt -CAkey root\rootCA.key -CAcreateserial -out intermediate\intermediateCA.crt -days 1825 -sha256 -extfile intermediate\ext.cnf -extensions v3_ca

 

 

 서버 CA 키 & 인증서 생성

PS D:\myCA> openssl genpkey -algorithm RSA -out server\server.key -pkeyopt rsa_keygen_bits:4096
PS D:\myCA> openssl req -new -key server\server.key -out server\server.csr -config server\san.cnf
PS D:\myCA> openssl x509 -req -in server\server.csr -CA intermediate\intermediateCA.crt -CAkey intermediate\intermediateCA.key -CAcreateserial -out server\server.crt -days 365 -sha256 -extfile server\san.cnf -extensions v3_req

 

 

체인 인증서 검증

PS D:\myCA> openssl verify -CAfile root\rootCA.crt -untrusted intermediate\intermediateCA.crt server\server.crt

 

 

서버 인증서 & 중간 인증서 결합 (체인 인증서)

PS D:\myCA> Get-Content server\server.crt, intermediate\intermediateCA.crt | Set-Content server\fullchain.crt -Encoding ascii

 

 

결합된 인증서 사용

  - 생성된 fullchain.crt 인증서와 server.key 키를 활용하여 웹 서버의 통신간 암호화 용도로 사용할 수 있다.

 

 

루트 인증서 설치

  - 사설 SSL 인증서가 적용된 웹 서비스에 접근시 로컬 PC에서 웹 브라우저 보안경고가 나타나는 증상을 막기 위해서 로컬 PC에 사설 루트 인증서를 설치 합니다.

 

 

'인프라 > OpenSSL & 인증서' 카테고리의 다른 글

OpenSSL 설치 가이드  (0) 2025.03.21