繁体   English   中英

AWS ELB会在重定向的位置标头中继续显示私有IP

AWS ELB keeps showing private IP in Location header on redirect

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我们正在使用config.force_ssl = true运行一个简单的Rails 4.0应用程序(在Ubuntu 14.04上)。 SSL上传到我们的ELB,ELB上的443和80端口在服务器上转发到80。

我们的PCI扫描失败了,因为使用HTTP / 1.0,ELB的私有IP显示在Location头中。 关于如何解决这个问题的任何想法? 我已经研究了好几天,现在真的卡住了。

$ telnet app.ourwebsite.com 80
GET / HTTP/1.0

HTTP/1.1 301 Moved Permanently
...
*Location: https://172.31.26.236/*
Server: nginx/1.6.2 + Phusion Passenger 4.0.57
Set-Cookie: AWSELB=...
2 个回复

PCI合规性失败的原因是因为正在使用的测试, nessus插件10759 ,使用HTTP 1.0并且不发送主机头,并且AWS ELB在连接到您的实例时无论出于何种原因设置自己的主机头它到负载均衡器的内部IP。

这是使用Apache的mod_forensics捕获这样的请求。 请注意主机头,它设置为负载均衡器的内部IP:

+11143:551306af:1 | GET / HTTP / 1.1 |主机:10.3.2.57 | X-Forwarded-For:已删除 | X-Forwarded-Port:443 | X-Forwarded-Proto:https |连接:keep-alive

这是请求的方式(使用bash在* nix上):

(echo -ne "GET / HTTP/1.0\r\n\r\n"; sleep 2) | openssl s_client -connect 1.2.3.4:443

其中1.2.3.4是ELB的IP地址。 你必须像这样制作请求,因为ELB不会接受\\ n \\ n直接键入openssl。

请注意,此处发送的唯一标头是GET

我的网站没有通过PCI扫描,导致我在这里,所以我觉得这需要进一步解释。

听起来你的ELB正在接收https然后转发http。 所以你的Rails服务器不需要担心SSL,因为它唯一与之通信的是ELB。

(这也是我们设置它的方式。)

因此,您可以从Rails服务器中删除config.force_ssl = true ,并使您的ELB需要SSL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM