【发布时间】:2016-04-10 14:13:54
【问题描述】:
我们在负载均衡器(也可用作 SSL 终结器)和 Apache HTTP Server 2.4 后面运行 Tomcat 7。 Apache 通过mod_proxy_ajp 连接到Tomcat。
对于应用程序,重要的是 Tomcat 知道请求是通过 HTTPS 进入的,因此是安全的。例如this article 建议,通常使用属性secure="true" 和可能的scheme="https" proxyPort="443" 在Tomcat 的连接器上进行配置。虽然这可行,但由于我们也将 HTTP 用于某些目的,因此很不方便,因此我们需要为此目的设置两个 Tomcat 连接器。而且它有一种味道,因为这种方式基本上是告诉 Tomcat 覆盖它从 Apache HTTP 服务器获得的错误信息,即请求是 HTTPS 而不是 HTTP,而不是告诉 Apache 它应该发送有关协议和的正确信息安全状态。
所以我的问题是:是否有可能以某种方式配置 Apache HTTP 服务器本身,使其通过 AJP 协议传递正确的信息:请求是通过 HTTPS 接收的并且是安全的?问题是它不知道它是 HTTPS,因为它之前有一个 SSL 终止符,并且就它而言,请求是通过 HTTP 到达的。我可以告诉 Apache 它实际上是 HTTPS 吗?
【问题讨论】:
标签: apache tomcat ajp mod-proxy-ajp