在 SSL 卸载程序和 Apache 之后的 Glassfish HTTPS 重定向

Posted

技术标签:

【中文标题】在 SSL 卸载程序和 Apache 之后的 Glassfish HTTPS 重定向【英文标题】:Glassfish HTTPS redirect behind SSL offloader and Apache 【发布时间】:2012-06-06 22:09:58 【问题描述】:

我有这个配置:

HTTPS 负载平衡器/SSL 卸载器在端口 443 上 Apache httpd 在 80 端口(不同的 IP),使用 ProxyPass、ProxyPassReverse 转发到... 多个 Glassfish 域在不同端口上侦听

问题:Glassfish 和 Apache 都不知道请求是 HTTPS。重定向到诸如“/index.jsp”之类的 URL 在 Glassfish 中被重写为 http://internal_ip/index.jsp,然后 ProxyPassReverse 重写为 http://public_ip/index.jsp。问题是,我需要该 URL 为 http*s*://public_ip/...

我该如何解决 - 是否有一些 Glassfish 配置可以更改,或者 Apache httpd.conf?

【问题讨论】:

【参考方案1】:

我看到了两种解决方案:

1) 使用您的负载均衡器来操作 apache 响应(F5 中的 iRule,A10 负载均衡器的 flex 等)

2) 在负载均衡器上设置一些东西,以向通过 HTTP 传入的请求发送另一个重定向以使用 HTTPS

【讨论】:

我已经有了重定向,所以所有内容都通过 HTTPS 提供。我要解决的问题是 IE 弹出警告“您将访问一个不安全的站点”,当浏览器尝试遵循 HTTP 重定向(然后重定向到 HTTPS)时会短暂闪烁 我同意,让负载平衡器重写 Location 标头作为响应(类似于 Apache ProxyPassReverse,如果 Apache 正在执行负载平衡和 SSL 卸载)可能是最好的解决方案

以上是关于在 SSL 卸载程序和 Apache 之后的 Glassfish HTTPS 重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何卸载Apache服务器

在 Apache SSL 代理后面嵌入 Tomcat 的 Spring Boot

带有 mod-proxy 和 SSL 的 Apache VirtualHost

如何使用命令行卸载 Apache

与远程服务器进行 SSL 握手期间出错

使用 SSL 在 apache 上运行 django 应用程序:pexpect spawn/expect 不起作用