在 Apache 后面的 Tomcat 上使用 SSL 有一点问题。我整个早上都在使用谷歌试图找到一个好的解决方案,但到目前为止还没有。
作为我的 SSL VirtualHost 配置的一部分,我有
<Location /MyApp/>
ProxyPass http://localhost:8080/MyApp/
</Location>
这在大多数情况下都可以正常工作,但是 j_security_check 在从https://mysite.com/MyApp成功登录后,会重定向到 HTTP 页面http://mysite.com/MyApp/secret.html而不是将其保留为 HTTPS页面https://mysite.com/MyApp/secret.html。不仅登录是机密的,还有正在传输的数据,所以我需要保持 HTTPS。当我添加到应用程序的安全约束时
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
它重定向到https://mysite.com:8443/MyApp/secret.html。我意识到它重定向到 8443,因为 server.xml 已将 SSL 配置为 8443,但由于这是通过 Apache 代理的,它实际上应该是 443。
我意识到我没有 ProxyPassReverse,但这不是我可以在 Apache 配置文件的一部分中添加的东西
如何强制 j_security_check 重定向相对(所以不要将 https 更改为 http)或重定向到 443 而不是 8443?这是我应该通过 Tomcat 或 Apache 的 mod_proxy 强制执行的吗?
干杯
尼克