我一直在寻找,但无法找到以下情况的明确解决方案:
我们有一个web应用程序(Grails + Spring Security),它运行在tomcat,后面是apache.部分应用程序需要在https上运行,因此使用Spring Security Channel Security时,无论何时导航到安全的应用程序的一部分,Spring都会将您重定向到具有302状态代码的https.
现在,设置tomcat以了解https和证书,因此它知道如何处理ssl.实际上,当直接通过直接访问url和端口来直接命中tomcat时,所有的工作都是100%.
现在问题在于将apache放在tomcat之前.我们现在拥有的apache配置适用于应用程序的非安全部分.我们使用mod_jk来代理apache和tomcat.
但是,只要您尝试转到应用程序的安全部分,Spring就会重定向您,它会触及
<VirtualHost _default_:443> ... </VirtualHost>
Run Code Online (Sandbox Code Playgroud)
apache配置的一部分...这就是问题开始的地方.
根据我的阅读,apache可以通过mod_jk将ssl处理传递给tomcat.但我们似乎无法获得正确的配置.由于已经为ssl设置了tomcat,它知道证书的位置,并且Spring Security已经设置好了,我们希望tomcat能够处理所有的ssl,而apache只是将它伪装成tomcat.
这是可能的,还是我错过了什么?有没有人有一些明确的指示如何设置它?任何帮助将不胜感激.
我们使用的是Apache 2.2和tomat 7.0.27
谢谢