이번 포스팅은 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 |
---|