나는 Elastic Beanstalk을 통해 Spring Boot 응용 프로그램을 배포했습니다. 로드 밸런서를 사용하고 있으므로이 흐름이 이해할 수 있습니다.스프링 부트 및 ELB -로드 밸런서가 http를 https로 리디렉션하도록하려면 어떻게해야합니까?
인터넷/브라우저 요청 --- HTTPS --->로드 밸런서 --- HTTP ---> 스프링 부트 응용 프로그램 서버
기본적으로 SSL은로드 밸런서에서 종료되며 앱 서버는 일반적인 기존 HTTP를 처리합니다.
그러나 브라우저의 HTTP 요청의 경우로드 밸런서가 자동으로 HTTPS로 리디렉션되도록합니다.
Spring Boot with Embedded Tomcat behind AWS ELB - HTTPS redirect
How to redirect automatically to https with Spring Boot
Spring Boot redirect HTTP to HTTPS
그러나 이러한 질문에 대한 답변 중 아무도 나에게 의미가 없습니다 :
는 몇 가지이 문제에 대한 질문이 있습니다. 아마 나는 오해하고있다. 그러나 모든 대답은 기본적으로 Spring Boot app 만 서버 HTTPS 요청을 만든다. (예를 들어 http.requiresChannel().anyRequest().requiresSecure()
을 사용할 때).
그러나로드 밸런서에서 종료되는 SSL과 HTTP 만 처리하는 스프링 부트 앱 서버에서 완벽하게 작동하므로이 흐름에 어긋납니다. 따라서 스프링 부트 레벨에서 SSL을 요구하면 엔드 투 엔드 SSL 연결이 필요합니다. 이는 내 애플리케이션에 실제로 필요하지 않습니다.
는 또한 도움이하지 않는 것 다음과 같은 속성을 사용하고 다음 중 하나를
server.tomcat.remote-ip-header=x-forwarded-for
server.tomcat.protocol-header=x-forwarded-proto
나는이 문제가 이미 해결되어 있는지 그리고 난이 중복 인 경우 사과,하지만 난 할 수 없습니다 이것을 알아내는 것 같습니다.
감사합니다. 감사!