Amazon AWS 307响应和永久重定向到HTTPS

时间:2015-02-18 14:36:11

标签: redirect amazon-web-services nginx amazon-ec2 amazon

我试图全面了解我的问题。我有来自GoDaddy的域名,AWS Route53用于管理DNS记录。 Route53向负载均衡器发送请求。

对于网络服务器,我有一个负载均衡器,可以将请求路由到单个(现在)EC2实例,EC2实例中的nginx获取请求并向客户端发送响应。

问题在于,当我使用http://执行请求时,AWS会使用https://响应将请求重定向到域的307 Internal Redirect版本。响应对象也有Non-Authoritative-Reason: HSTS标题。

问题是什么,哪个组件是重定向请求?

2 个答案:

答案 0 :(得分:23)

它既不是组件。

这不是AWS的任何内容......它是浏览器。它是浏览器生成的内部重定向,与HSTS ... HTTP Strict Transport Security相关。

如果您现在没有这样做,那么可能在过去,您已经在此域的响应中生成了Strict-Transport-Security:标头,并且浏览器已经记住了这一事实,阻止您访问该网站不安全,正如其预期的那样。

答案 1 :(得分:10)

我知道我会参加派对,但我想在Wordpress论坛上发布this post启发的实际完整解决方案。

只是从服务器上删除HSTS标头将无法解决问题,因为浏览器缓存了HSTS响应,并且无论如何都将继续触发该网站的https://。在Chrome / Chromium中,您可以从about://net-internals/#hsts删除该网站,但这对您的访问者来说几乎不是一个解决方案,因为您不知道有多少已将其缓存为HSTS。

在服务器端,您需要设置max-age=0,这将(根据RFC)要求浏览器停止将该主机视为HSTS。

在Apache中,执行以下操作:

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=0"
</IfModule>

并确保启用了headers模块(您可以在Ubuntu / Debian / Mint上使用a2enmod headers。)