我们正在将Palo Alto的VM防火墙与ELB的sandwich topology配合使用,并且无法获得正确的X-Forwarded-Proto使其完全返回到Web服务器。 HTTPS终止发生在外部负载均衡器上,然后作为HTTP在整个堆栈中运行。使用单个负载平衡器,无论是HTTP还是HTTPS,我们都不会检索正确的X-Forwarded-Proto标头。但是,在三明治拓扑中,无论如何,我们都将HTTP作为X-Forwarde-Proto。
我们需要标头的主要问题是将所有请求重定向到HTTPS,这也许可以在PAN防火墙上完成,但是事实证明这还难以捉摸。
答案 0 :(得分:1)
这是预期的行为,并且很可能是设计导致的-如果ALB通过X-Forwarded-Proto
,则可以伪造,并且它们没有任何允许例外的能力...因此,它总是被覆盖
您可以在内部使用网络负载平衡器。由于它们在第4层运行,因此它们不会处理标头。
或者,如果面向外部的平衡器是ALB,则可以在那里创建一条规则,以将所有HTTP请求重定向到平衡器中的HTTPS。
通过重定向操作,负载均衡器可以将传入请求从一个URL重定向到另一个URL。这包括将HTTP请求重定向到HTTPS请求的功能,从而使您可以满足安全浏览的合规性目标,获得更好的搜索排名和站点SSL / TLS得分高。
关于ALB重定向的一个小“陷阱”是,您必须将目标端口明确指定为443,否则平衡器将保留原始端口并将重定向写入https://example.com:80/
,这当然是行不通的。 / p>
答案 1 :(得分:0)
这可能不是您要寻找的答案,但是,如果您在传输层使用基于TCP的网络负载平衡器而不在应用程序层使用HTTP / S侦听器,则此体系结构将起作用。
当将请求代理到目标服务器时,传输负载平衡器将完全不考虑协议,并且整个HTTPS将保持不变。应用程序负载平衡器将解释其策略并在设计上覆盖X-Forwarded-Proto
。