https로 Springboot 서버를 어떻게 실행할 수 있을지 궁금했었는데 방법을 찾아서 정리해본다.
application.yml에는 아래와 같은 ssl 설정을 추가한다.
server:
ssl:
enabled: true
key-store: keystore.p12
key-store-password: 1q2w3e4r
key-store-type: PKCS12
key-alias: bns-ssl
port: 8443
위에서 정한 값을 keytool 인자로 전달하여 인증서 파일을 생성한다.
(keytool은 jdk에 포함됨)
# linux
# keytool -genkey -alias ${key-alias} -storetype ${key-store-type} -keyalg RSA -keysize 2048 -keystore ${key-store} -validity 3650
# windows: java_home 설정 필요
# keytool.exe -genkey -alias ${key-alias} -storetype ${key-store-type} -keyalg RSA -keysize 2048 -keystore ${key-store} -validity 3650
keytool -genkey -alias bns-ssl -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
생성된 인증서 파일 keystore.p12을 springboot 프로젝트 root 경로로 이동한다.
서버를 실행하고 브라우저에서 https://localhost:8443으로 접속해서 확인한다.