Amazon AWS 307响应和永久redirect到HTTPS

我试图给我一个广泛的图片我的问题。 我有一个来自GoDaddy的域,使用AWS Route53来pipe理DNSlogging。 Route53向负载均衡器发送请求。

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

问题是,当我使用http://执行请求时,AWS使用307 Internal Redirect响应将请求redirect到域的https://版本。 响应对象也具有Non-Authoritative-Reason: HSTS头。

什么是问题,哪个组件是redirect请求?

这不是组件。

这不是来自AWS的任何东西…它是浏览器。 这是浏览器正在生成的内部重定向,与HSTS相关… HTTP严格传输安全性 。

如果你现在没有这样做,那么大概在过去,你已经在这个域的响应中产生了一个Strict-Transport-Security: header,浏览器记住了这个事实,从而阻止你不安全地访问这个站点,正如它打算这样做。

我知道我正在参加派对,但是我想在Wordpress论坛上发布这个灵感来自这篇文章的完整解决方案。

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

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

在Apache中,执行以下操作:

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

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