我有一个来自GoDaddy的域名,使用AWS Route53管理DNS记录。Route53将请求发送到负载均衡器。
对于Web服务器,我有一个负载平衡器,它将请求路由到单个(目前)EC2示例,EC2示例中的nginx获取请求并向客户机发送响应。
问题是当我使用http://
来执行请求时,AWS使用307 Internal Redirect
响应将请求重定向到https://
版本的域,响应对象也有Non-Authoritative-Reason: HSTS
头。
问题是什么?哪个组件重定向请求?
2条答案
按热度按时间vcirk6k61#
两者都不是。
这不是来自AWS的任何东西...这是浏览器。这是浏览器生成的一个 * 内部 * 重定向,与HSTS... HTTP Strict Transport Security有关。
如果您现在没有这样做,那么可以推测,在过去,您已经在来自此域的响应中生成了
Strict-Transport-Security:
标头,并且浏览器记住了这一事实,防止您不安全地访问网站,因为它打算这样做。qnzebej02#
我知道我迟到了,但我想张贴实际的完整解决方案,这是从this post的WordPress论坛的灵感。
仅仅从服务器上删除HSTS头文件并不能解决这个问题,因为浏览器缓存了HSTS响应,并且无论如何都会继续触发该网站的https://。在Chrome/Chromium中,您可以从
about://net-internals/#hsts
中删除该网站,但这对您的访问者来说并不是一个解决方案,因为您不知道有多少人已经将其缓存为HSTS。在服务器端,您需要设置
max-age=0
,这将(按照RFC)要求浏览器停止将该主机视为HSTS。在Apache中,执行以下操作:
并确保您启用了
headers
模块(您可以在Ubuntu/Debian/Mint上使用a2enmod headers
)。