Jam*_*nan 6 ssl ruby-on-rails amazon-web-services http-headers engineyard
在https://support.cloud.engineyard.com/entries/21715452-use-elastic-load-balancing-with-engine-yard-cloud上关注 Engine Yard文档
得到了这个设置并且似乎运行良好,允许我们在ELB上使用SSL Terminated而不是服务器.从理论上讲,这应该允许我们在单一环境中使用多个SSL证书.
此设置意味着浏览器和ELB负载平衡器之间的流量是SSL,但是从ELB到应用程序服务器的转发流量将被解密.这导致我们的rails 3.2.8应用程序强制SSL出现问题 - 它将每个解密的请求重定向回其https等效项,后者再次从负载均衡器向应用程序服务器发送解密请求,从而导致无限循环条件.
如果我们在我们的应用程序中禁用强制SSL,我们需要测试每个请求以查看它是否来自SSL连接,如果它确实我们可以响应,如果没有,则重定向它.
根据此发行说明(http://aws.amazon.com/releasenotes/7778622769836370),当从https连接传递流量时,ELB将传递包含"https"的X-Forwarded-Proto标头.
首先,在Engine Yard的请求中没有名为"X-Forwarded-Proto"的标题."HTTP_X-FORWARDED_PROTO"确实存在,但即使通过SSL将流量发送到ELB,它也始终包含"http".
任何人都可以提供任何洞察力或解决方法的想法吗?到目前为止,我已经尝试了没有太多运气的安永支持.
您可以检查 X-Forwarded-Port 标头,如果请求通过 ssl 到达负载均衡器,则该标头为 443。那将HTTP_X_FORWARDED_PORT
在机架环境中。
我们在 Engine Yard Rails 应用程序中使用这个修改后的rack-ssl gem 作为解决方法。
归档时间: |
|
查看次数: |
1714 次 |
最近记录: |