gpt4 book ai didi

ssl - HSTS 过期如何运作

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:49 25 4
gpt4 key购买 nike

在 ASP.NET Core 2.2 应用程序中,我们使用 app.UseHsts(); 启用了 HSTS,它在响应 header 中添加了 max-age 为 30 天的 HSTS。

在 fiddler

Strict-Transport-Security: max-age=2592000

然后在 Chrome 中,如果我转到 chrome://net-internals/#hsts 并查询我们的域名,我得到:

发现:

static_sts_domain:  
static_upgrade_mode: UNKNOWN
static_sts_include_subdomains:
static_sts_observed:
static_pkp_domain:
static_pkp_include_subdomains:
static_pkp_observed:
static_spki_hashes:
dynamic_sts_domain: subdomain.example.com //our domain name here
dynamic_upgrade_mode: FORCE_HTTPS
dynamic_sts_include_subdomains: false
dynamic_sts_observed: 1572023505.777819
dynamic_sts_expiry: 1574615505.777818

问题

  1. dynamic_sts_observeddynamic_sts_expiry 的单位是什么。它看起来不像是在几秒钟内。值(value)是如何计算的?
  2. 如果用户每天都访问网站,该值是否会不断更新?换句话说,它是滑动到期吗?
  3. 到期后会发生什么?
  4. 如果用户已经访问过网站并且他的浏览器已经将 HSTS 缓存了 30 天,会发生什么情况。但是几天后,我们将值从 30 天更改为 90 天。用户的浏览器何时会获得更新的值?到期后还是下次访问?
  5. 用户浏览的URL已经是子域,如https://subdomain.example.com 我们使用的SSL证书是通配符证书。 *.example.com。那么 HSTS 配置我需要包含子域吗?像 Strict-Transport-Security: max-age=2592000, includeSubDomain

最佳答案

  1. 它是 unix 纪元时间的秒数(即自 1/1/1970 以来)。正如 Joachim 的评论所述,您可以在此处查看和转换它:https://www.unixtimestamp.com/index.php

  2. 是。

  3. 就好像您从未见过 HSTS header (即不会强制执行 HTTPS)。

  4. 在下一次访问之后,按照 2,这是一个滑动到期,每次访问都会重新计算。

  5. 如果该策略处于顶层,则您需要使用 includeSubDomains(请注意您在问题中遗漏了 S),以影响子域。您还可以在每个子域上发布单独的策略(相同的或不同的)。您的顶级策略仅在访问者访问该站点(例如 https://example.com )时加载,因此如果他们仅访问子域(例如 https://www.example.com ),则浏览器将不会缓存顶级策略。最佳做法是对所有策略使用 includeSubDomains 并从顶级域加载 Assets (例如单个像素或公司 Logo )以强制选择顶级策略,因此所有其他子域也受到保护。这仅在您没有任何仅限 http 的网站(例如 http://intranet.example.comhttp://blog.example.com )时有效,在这种情况下,您能做的最好的事情就是制定没有 includeSubDomains 的顶级政策,然后每个完全支持 HTTPS 的子域的不同策略 includeSubDomains。该证书与 HSTS 无关(除了事实上您显然需要为每个 protected 域提供一个!)。

关于ssl - HSTS 过期如何运作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com