【问题标题】:HTTPS Header Redirect Not Working with PHPHTTPS 标头重定向不适用于 PHP
【发布时间】:2011-04-14 19:44:42
【问题描述】:

我有一个负载平衡的开发站点,我正在解决 SSL 的错误,我遇到了最后一个非常烦人的问题。在某些页面上,我需要将其强制为 SSL 非常简单,我只是想创建一个

header ("Location: https://www.example.com/mypage.php");

我认为这很容易,不用担心。但是,每次我这样做时,它都会将其转换回 http。好吧,您可以想象它会创建一个无法解决的无限循环。我不知道如何将 https 保留在那里,以便它会提取页面的安全版本。如果我使用 https 直接导航到安全页面,它就可以正常工作。唯一的问题是这个重定向。

任何帮助都会很棒!我使用 POUND 作为负载平衡代理。 Web 服务器节点上的 Apache。 SSL 证书是在负载均衡器上设置的。

【问题讨论】:

    标签: php redirect https


    【解决方案1】:

    在负载平衡时,“内部”SSL 通常会出现:客户端通过负载平衡器连接,您可以使用该负载平衡器进行 SSL 加密,但在我见过的大多数负载平衡器中,其背后是简单的“HTTP”。尝试让您的负载均衡器为您设置一个自定义标头,指示负载均衡器和客户端之间存在 HTTPS 连接。

    来自http://www.apsis.ch/pound/index_html

    什么是英镑: ... SSL 包装器:Pound 将解密来自客户端浏览器的 HTTPS 请求,并将它们作为纯 HTTP 传递给后端服务器。

    还有更多手册页:

    HTTP 监听器 重写位置 0|1|2
    如果 1 强制 Pound 更改 Location: 和 Content-location: 响应中的标题。如果它们指向后端本身或 侦听器(但使用错误的协议)响应将是 更改为在请求中显示虚拟主机。默认值:1 (积极的)。如果该值设置为 2,则只有后端地址是 比较的;这对于将请求重定向到 HTTPS 很有用 与 HTTP 侦听器位于同一服务器上的侦听器。

    【讨论】:

    • 这引发了一个有趣的问题,然后使用这样的负载平衡器设置。当页面在代码中进行重定向时,本地 apache 实例是否会尝试与自身对话并进行重定向,而不会将其发送回负载均衡器?如果是这样的话,这就是为什么它在我身上将 https 转换为 http 的原因。所有节点都没有设置 SSL,因此它不知道它可以做到这一点。如果是这种情况,有什么办法可以解决这个问题?
    • 在手册中找到了一个额外的参考,将其添加到答案中。
    • 做到了。更改了 RewriteLocation 2 并解决了所有这些问题。哇,真希望我今天早上 8 点就看到了。感谢 Wrikken 的帮助!
    【解决方案2】:

    尝试改用负载平衡器“平衡”。设置只需要大约 5 分钟,而不是代理,将做“真正的”负载平衡。我猜您的代理当前正在将 https 请求重定向到 http 地址。尝试在不使用平衡器的情况下发出请求。您可以通过在 /etc/hosts 文件中设置主机名直接指向服务器而不是负载平衡器的 IP 来做到这一点

    【讨论】:

      【解决方案3】:

      重定向到 https 页面没有问题。 您可以检查端口、方案或服务器变量(可能服务器变量是最好的)以查看 https 是否打开,并将其作为重定向的条件

      $_SERVER['SERVER_PORT'] == 443 
      parse_url($_SERVER['REQUEST_URI'],PHP_URL_SCHEME) == 'https'
      $_SERVER['HTTPS'] == 'on'
      

      但是由于你有一个无限循环,所以肯定有其他问题!

      【讨论】:

      • 是的,我把所有的部分都记下来了。我检测到它不安全,但无论我在重定向调用中放入什么,它都会一直将其重定向到 http。所以我很难过。这可能是我不知道的 Apache 中的错误配置吗?不知道我什至会在那里寻找什么。
      猜你喜欢
      • 2015-09-30
      • 2015-02-04
      • 2011-09-08
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多