Spring boot - local tomcat 에서 ssl 설정하
동기
최근 chrome80 의 cookie 정책변경으로 저자가 서비스하는 모든 서비스들을 https로 운영하기로 했다. 관련 이슈는 여기 (https://hyeonguj.github.io/2020/02/05/chrome80/ ) 에 정리하였다.
기존에는 local환경과 개발서버에서는 http로 통신을 하며 작업을 하였으나 바뀐 정책에서 쿠키를 읽기위해서는 https로 서비스를 해야한다.
개발서버의 경우 apache나 nginx에서 모두 http -> https로 바꾸어주며, 인증서 처리가 되어있기때문에 문제가 되지 않는다. 하지만 local
환경의 경우 tomcat 또는 spring boot application
에서 https로 서비스를 할 수 있어야 테스트가 가능하다.
Spring boot https 활성화하기
우선 ssl 인증서를 준비한다.
만드는 방법은 아래와 같다
** windows 기준 **
keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore tomcat.keystore
** mac **
sudo keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore
1 | keytool -genkey -alias tomcat -keyalg RSA -validity 3650 -keystore tomcat.keystore |
그리고 application.yml에 아래와 같이 설정해주도록 한다.
1 | server: |
마지막으로 application을 실행해서 https로 접속하여 확인하자.
local tomcat 에서 ssl 설정하기
spring boot web application이 아닌경우라면 로컬환경에서 톰켓을통해 실행할 가능성이 크다. 이런경우에도 동일하게 인증서를 먼저 생성해준다.
이후 아래와같이 https 포트를 지정해준다
그리고 local tomcat 의 server.xml
에 아래 항목을 추가한다
1 | <!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 --> |