windows 환경에서 React 와 Spring boot 간의 Https 로 테스트를 할 일이 생겼다.
yaytomato님의 블로그 글을 참고하여 구성한 내용을 정리해본다.
1. mkcert 설치
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
choco install mkcert
2. mkcert 를 이용하여 인증서 발급
mkcert -install
mkcert "{domain}" 127.0.0.1 ::1
예) mkcert "*.example.com" 127.0.0.1 ::1
pem과 key 파일이 생성된다.
3. crt 인증서 생성 및 등록
윈도우에서 인증서를 등록하기 위해 openssl을 이용하여 crt 인증서를 생성
openssl rsa –in _wildcard.example.com+2-key.pem –text > _wildcard.example.com.key
openssl x509 –inform PEM –in _wildcard.example.com+2.pem –out _wildcard.herace.com.crt
crt 파일을 더블클릭하여 신뢰할 수 있는 루트 인증 기관 저장소에 인증서 저장
hosts에 아래 내용 추가
127.0.0.1 web.examplecom
127.0.0.1 api.example.com
#.env
HTTPS=true
SSL_CRT_FILE=_wildcard.example.com.crt
SSL_KEY_FILE=_wildcard.example.com.key
$ yarn start
openssl pkcs12 -export -inkey _wildcard.example.com+2-key.pem -in _wildcard.example.com+2.pem -out _wildcard.example.com.p12
인증서 파일 프로젝트에 위치
application.properties 에 추가
server.ssl.key-store=_wildcard.example.com.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password={password}