【问题标题】:Why does SSL Labs test say that HSTS is enabled when the header is sent over HTTP, but not when sent over HTTPS?为什么 SSL Labs 测试说通过 HTTP 发送标头时启用 HSTS,但通过 HTTPS 发送时不启用?
【发布时间】:2017-03-31 05:56:50
【问题描述】:

我正在尝试在我的服务器上配置 HSTS。我注意到 SSLLabs.com 上的测试会告诉我,如果我通过初始未加密的 HTTP 连接发送 HSTS 标头,则已启用 HSTS。但是,这违反了 RFC-6797 第 7.2 节中的 HSTS 规范,该规范明确指出您不应通过未加密的连接发送此标头。

另一方面,如果我的服务器仅在执行从 HTTP 到 HTTPS 的 302 重定向后才发送该 HSTS 标头,这正是官方 HSTS 规范所说的您应该做的,那么 SSL Labs 不会承认我有 HSTS已启用。

那么我在这里错过了什么?执行此操作的实际正确方法是什么?


如果你想看看我在说什么,有问题的网站是 nightowlcircusarts.com

您可以通过这个 bash 命令使用 curl 查看未加密的标头:

curl -I http://www.nightowlcircusarts.com/

或将 http 更改为 https 以查看加密的标头:

curl -I https://www.nightowlcircusarts.com/

目前,我已将其配置为仅通过 TLS 发送该标头,而不是没有它,正如 HSTS 规范所说的那样。但是您会看到 SSL Labs 测试仍然显示我没有启用 HSTS: https://www.ssllabs.com/ssltest/analyze.html?d=nightowlcircusarts.com

【问题讨论】:

  • 在测试的 DROWN 部分尝试访问该测试的详细说明以及显示各个问题的位置单击更多信息链接,它们应该可以帮助您指出正确的方向
  • 不明白你为什么这么想。正确答案如下。

标签: http ssl encryption https hsts


【解决方案1】:

首先,ssllabs 不会扫描未加密连接上的站点 - 仅扫描加密连接 (https)。所以它不会告诉你你在 http 上启用了它。

您的问题是 nightowlcircusarts.com 和 www.nightowlcircusarts.com 是两个不同的网站,您只是在后者上设置它,但在前者上扫描它:

现在扫描结果在底部确实显示,裸域确实重定向到 www 版本,但 ssllabs 的任务是测试 SSL/TLS 连接(发生在重定向之前),因此它故意不遵循重定向和而是报告 SSL/TLS 连接配置。它希望您单独扫描重定向站点 - 正是针对像这样您设置不同的用例!

我猜当您“通过初始未加密的 HTTP 连接发送 HSTS 标头”时,您实际上所做的是设置它无处不在(包括通过 https 的裸域),这就是您认为它的原因当你这样做时“工作”。

通过 https-to-https 重定向设置 HSTS 是允许的(也是预期的!)。实际上,您的具体示例已涵盖in the RFC in section 11.4.1

顺便说一句,将 HSTS 添加到裸域是最佳做法,但请确保您的整个域仅通过 https 提供服务。如果您有一个子站点(例如 blog.example.com)或者也将其用于尚未保护的非公共站点(例如 intranet.example.com),那么这可能会导致问题。在这种情况下,您可以将 HSTS 添加到裸域但没有 includeSubdomain 选项 - 尽管这不会为您提供 HSTS 的全面保护。

最后,如果检查站点的各种安全标头而不是 SSL/TLS 配置,那么 https://securityheaders.io 是一个很棒的站点,并且比 ssllabs 所做的整套 SSL/TLS 测试运行得更快:

请注意,这两个站点检查的内容不同,因此我们不是替换另一个站点(两者都是超级粉丝!),但两者都显示了一些设置(HSTS 和 HPKP)。虽然在这个问题上要非常小心 HPKP(我不是粉丝,也不认为它应该被广泛使用)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 2010-09-06
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多