弹性负载均衡器和https

我正在使用Elastic Beanstalk,我在使用SSL配置时遇到了一些麻烦。

我现在有一个由Load Balancer和一个EC2实例组成的环境。 负载均衡器在端口443和80上有侦听器。环境中的EC2实例在端口80上运行tomcat。我在负载均衡器中有一个证书,我可以在端口443和80上访问该站点,一切都是工作得很好。

问题是我希望所有请求都被重定向到端口443,即使是端口80上的请求。我已经搜索了高低,以便在不改变我的安全配置的情况下执行此操作。 这是一个运行在Tomcat 7上的小型webapp,带有Spring安全性和MVC。 我试过用

 

但我有几个页面不属于filter链的一部分

  

这似乎可以在负载均衡器上解决,但我没有太多设置SSL的经验。 任何帮助表示赞赏。

您的ELB接受443和80上的连接,但它终止了那里的SSL并仅在80上联系您的代码.SSL基本上是从浏览器到ELB。 ELB在Beanstalk上的后端代码总是在80。

因此,任何期望基于传入协议匹配的规则都不起作用。 相反,您应该使用此标题“X-Forwarded-Proto:”(将由ELB设置),然后执行转发规则。