Firefox 从哪里获取 HSTS 信息?

Firefox 从哪里获取 HSTS 信息?

我有一个使用自签名证书提供 HTTPS 服务的本地服务器。它不提供 http 服务。证书颁发时使用 cn=host1.subdomain1.domain1。该服务器也可以通过名称 host2 访问。如果我打开https://host2我收到警告,但我可以为证书定义例外并可以访问服务器内容。服务器没有并且从未返回 HSTS 标头。如果我通过以下方式访问服务器https://host1.subdomain1.domain1,Firefox 发出 HSTS 警告并且不允许例外。domain1 或 subdomain1.domain1 的服务器可能发送了 HSTS 标头。它们可能也适用于子域。

但是:即使清除历史记录和 about:permissions 条目后,行为仍然相同。那么,HSTS 信息来自哪里?

答案1

HSTS 标头可以指示浏览器使用 来包含子域includeSubDomains。浏览器还可能包含使用 HSTS 的域的预加载列表。

  • 网站可以使用以下内容指定为期六个月且包含子域名的 HSTS:

    Strict-Transport-Security: max-age=15768000; includeSubDomains
    
  • 这样做的效果正如你问题中描述的一样。这里的关键是includeSubDomains标题行末尾的。

  • 请注意,大多数主流浏览器的当前版本都保留内部网站列表已知它们使用 HSTS,因此即使第一次连接到特定域时也会要求 HTTPS 连接。也可以看看:OWASP 关于 HTTPS 严格传输安全

相关内容