....

Spring Boot를 Apache와 연동할 때.. scheme이 유실되는 문제.. 본문

JAVA

Spring Boot를 Apache와 연동할 때.. scheme이 유실되는 문제..

idkook 2019. 2. 24. 18:45


어플리케이션 측에서는 서버에서 요청이 들어온것으로 판단하므로 

mod_jk가 아닌 ReverseProxy 를 사용하면서 https 스킴을 일어버리게 됨.


다음과 같은 문제가 발생

  • 로그인 페이지에 진입시 http인 경우 https로 리다이렉트 처리. (무한 리다이렉트 발생)
  • OAuth2를 사용하면서 요청한 URL은 http이나 응답은 https로 [invalid_redirect_uri_parameter] 인증 오류가 발생.


해결 방법


Apache에서는 아래와 같이 설정


<VirtualHost *:443>
    ServerName www.myapp.org
    ProxyPass / http://127.0.0.1:8080/
    RequestHeader set X-Forwarded-Proto https
    RequestHeader set X-Forwarded-Port 443
    ProxyPreserveHost On
    ... (SSL directives omitted for readability)
</VirtualHost>


Spring Boot의 application.properties에는 아래 설정해서 X-Forward 해더를 사용하도록 수정

server.use-forward-headers=true


하마터면... mod_jk 설치한다고 undertow에서 tomcat으로 돌려야 할 뻔....

Comments