티스토리 뷰

반응형

Spring Boot 내장 Was (tomcat, undertow) Https 적용 방법

 

1. https를 사용하기 위해 키저장소를 만든다

- 저장할 디렉토리에서 커맨드 창을 띄우로 아래 스트립트를 작성한다

keytool -genkey -alias [키스토어명] -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore [키스토어파일이름] -validity 3650
예) keytool -genkey -alias test-keystore -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore test-keystore.p12 -validity 3650

각 옵션 설명

-genkey : 키를 생성
-alias : 키의 별칭
-storetype : 저장 타입
PKCS12, JKS, PEM 주요 3가지 키타입 존재
톰캣을 사용하는 경우 PKCS12와 JKS만 지원이 되고, PEM은 지원하지 않음

나는 undertow 사용 하였는데 위 예제로 문제없이 사용

- JKS : Java Standard Keystore 포맷이고 JDK포함되어 있으며 keytool 명령어를 사용할 수 있음

- PKCS12 : 인터넷 표준 포맷이고 OPENSSL 를 사용하여 생성 할 수 있음

 

2. 아래 정보 입력

 

3. 파일 생성 확인

 

4. 해당 파일을 프로젝트에 저장 후 application.properties 혹은 application.yml 에 세팅

application.yml

server:
  ...
  ssl:
    key-store: test-keystore.p12
    key-store-type: PKCS12
    key-store-password: test123
    key-alias: test-keystore

 

5. 애플리케이션 구동 시 https 적용 확인
스프링부트는 내장 서블릿 컨테이너(Embedded Tomcat, Jetty, Netty or Undertow)가 사용하는 HTTP Connector를 기본적으로 하나만 등록하고 그 커넥터에 SSL을 적용해줌
적용이 되면 모든 요청은 https 를 붙여서 해야함 http 불가

 

6. https://localhost:8080 적용 확인

http:// 안됨 

고급 > localhost(안전하지 않음)(으)로 이동 클릭

 

 

끗!@#%!@#!#@$

반응형