只要网站仍然可以通过 HTTPS 访问,禁用 HSTS 预加载是否安全?

只要网站仍然可以通过 HTTPS 访问,禁用 HSTS 预加载是否安全?

我有一个网站正在使用免费的 Cloudflare 服务并已启用HTTP Strict Transport Security (HSTS)预加载。

如果我想从 Cloudflare 中删除域名并直接路由到使用有效 SSL 证书托管该域名的服务器,那么无论时间max-age范围是否已过期,该网站是否仍然可以访问?

我启用的唯一位置HTTP Strict Transport Security (HSTS)是在 Cloudflare 控制台内部,它实际上并未在原始服务器上配置。

Cloudflare HSTS 警告面板来源

谢谢。

答案1

HTTP 严格传输安全 (HSTS) 不会阻止您更改 DNS 记录以指向不同的 IP 地址,它只是阻止启用 HSTS 的浏览器(已看到 HSTS 标头或已预加载,即 Chrome)尝试通过 HTTP 进行连接(而非 HTTPS)。

它所做的就是让支持 HSTS 的浏览器将请求更改http://example.comhttps://example.com 发送请求,从而确保不会以明文形式发送任何信息。

Cloudfare 警告只是告诉您,当您更换托管公司时,您需要确保在新网站上也安装了有效的 SSL。

由于您在新托管位置拥有有效的 SSL 证书,因此一切顺利。只需更新您的 DNS 并继续!

如果您保留 SSL,禁用 HSTS 的原因。 另一方面,不是在支持 SSL 的网站上使用 HSTS 会降低该网站的安全性,因为 HSTS 阻止通过 HTTP 流动的流量能够以明文形式穿越互联网。

就 HSTS“预加载”而言,这是 Google 等公司在 Chrome 浏览器中预加载 HSTS 标头的过程(而不是浏览器必须先访问过网站一次才能存储标头)。与所有 HSTS 标头信息一样,预加载的 HSTS 信息按主机名存储,不是IP 地址。您是总是可以自由更改网站托管的 IP 地址。另一方面,启用 HSTS 后放弃 SSL 会使某些用户难以(甚至无法)访问您的网站。

答案2

我们 (CloudFlare) 传播 DNS 的速度非常快。最初提供缓存版本的可能性很大,但持续时间不会超过 300 秒(可能更少)。

答案3

柯尔特的答案是正确的。

不过,关于预加载还有一点需要补充:

如果您在标头中设置了“预加载”标签,那么您可以将网站提交到预加载列表,这样您使用 HSTS 的事实就会被嵌入到浏览器中,而不是基于浏览器是否在最大年龄时间内最后一次看到标头。

似乎有些浏览器在看到包含 preload 关键字的标头时会主动将您的网站添加到预加载列表中。因此,您可能在不知不觉中就已预加载。

最简单的检查地点是https://www.ssllabs.com/ssltest/靠近底部有一个 HSTS 预加载字段,它会告诉您您的网站在哪些浏览器预加载列表中。

这很重要,原因有二:

  1. 您可能没有意识到您的网站已经预加载,并且在离开 Cloudflare 一段时间后可能会认为关闭 HTTPS 是安全的 - 但事实可能并非如此。

  2. 你可能想保持预加载,但Chrome 正在警告如果域名不再提供带有 preload 关键字的标头,他们将来可能会从内置列表中删除该域名。在这种情况下,如果您希望保留,则应将正确的 HSTS 标头添加到您的基础服务器。

最后,您应该意识到预加载(通常)需要“includesubdomains”参数,因此即使您从未在子域上明确发布该标头,您域的所有子域也可能在预加载列表中。

预加载增加了相当多的复杂性和限制,因此如果您出于某种原因想要恢复到 HTTP,则需要充分理解这意味着什么。

相关内容