发动机场导轨应用程序 - 在弹性负载平衡器(ELB)上终止SSL,并通过X-Forwarded Proto HTTP标头



在https://support.cloud.engineyard.com/entries/21715452-use-use-elastic-lost-lastic-load-balancing-with-engine-engine-engine-and-cloud-cloud//1.cloud.engineyard.com/entries/21715452-cloud.engineyard.com/cloud class =" qnd">

上P>

设置了此设置,并且似乎可以很好地工作,从而使我们可以使用在ELB终止的SSL而不是在服务器上。从理论上讲,这应该使我们能够在单个环境中使用和多个SSL证书。

此设置意味着浏览器和ELB负载均衡器之间的流量为SSL,但是从ELB到应用程序服务器的ONTRED流量被解密了。这给我们带来了轨道3.2.8应用程序迫使SSL的问题 - 它将每个解密的请求重定向到它的HTTPS等效物,该请求再次从负载平衡器发送了一个解密的请求,再次引起了应用程序服务器,导致了无限的环路。

如果我们在应用程序中禁用SSL的强迫,我们需要测试每个请求以查看它是否来自SSL连接,如果它可以响应,则可以重定向。

根据此发行说明(http://aws.amazon.com/releasenotes/777778622769836370)ELB将通过X-Forwarded Proto标头,其中包含" HTTPS",该标头何时从HTTPS连接中传递到https。

首先,在发动机场的请求中没有标题为" X-Forwarded Proto"。确实存在'http_x-forwarded_proto'

任何人都可以对解决方法提供任何洞察力或想法吗?到目前为止,我尝试过没有很多运气的支持。

您可以检查X-Forwarded-port标头,如果请求通过SSL到达负载平衡器,则为443。那将是机架env。

中的HTTP_X_FORWARDED_PORT

我们在发动机场栏杆应用程序中使用此修改后的机架SSL宝石作为解决方法。

最新更新