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

suzh9iv8  于 2023-02-18  发布在  Nginx
关注(0)|答案(2)|浏览(273)

我有一个来自GoDaddy的域名,使用AWS Route53管理DNS记录。Route53将请求发送到负载均衡器。
对于Web服务器,我有一个负载平衡器,它将请求路由到单个(目前)EC2示例,EC2示例中的nginx获取请求并向客户机发送响应。
问题是当我使用http://来执行请求时,AWS使用307 Internal Redirect响应将请求重定向到https://版本的域,响应对象也有Non-Authoritative-Reason: HSTS头。
问题是什么?哪个组件重定向请求?

vcirk6k6

vcirk6k61#

两者都不是。
这不是来自AWS的任何东西...这是浏览器。这是浏览器生成的一个 * 内部 * 重定向,与HSTS... HTTP Strict Transport Security有关。
如果您现在没有这样做,那么可以推测,在过去,您已经在来自此域的响应中生成了Strict-Transport-Security:标头,并且浏览器记住了这一事实,防止您不安全地访问网站,因为它打算这样做。

qnzebej0

qnzebej02#

我知道我迟到了,但我想张贴实际的完整解决方案,这是从this post的WordPress论坛的灵感。
仅仅从服务器上删除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)。

相关问题