HSTS有效期如何工作

问题描述 投票:0回答:1

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

在提琴手中

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的单位是什么。看起来好像不到几秒钟。值如何计算?
  2. 如果用户每天都在访问网站,值是否会不断更新?换句话说,它是到期日滑动吗?
  3. 到期后会发生什么?
  4. 如果用户已经访问该网站并且其浏览器已经缓存了HSTS 30天,将会发生什么情况。但是几天后,我们将值从30天更改为90天。用户的浏览器何时会获得更新的值?到期后还是下次访问?
  5. URL用户浏览器已经是https://subdomain.example.com之类的子域,我们使用的SSL证书是通配符证书。 *.example.com。因此,HSTS配置是否需要包括Subdomain?像Strict-Transport-Security: max-age=2592000, includeSubDomain
ssl https asp.net-core-2.0 hsts
1个回答
0
投票
  1. Unix纪元时间(即自1970年1月1日以来的秒数)。如Joachim的commebt所言,您可以在此处查看和转换它:https://www.unixtimestamp.com/index.php

  2. 好像您从未见过HSTS标头(即不会强制执行HTTPS)。

  3. 在下一次访问后,按照第2条,它是一个滑动到期日,每次访问时都会重新计算。

  4. 如果策略是顶级策略,那么您需要使用includeSubDomains(请注意,如果您在问题中未填写,请加上S),以使其影响子域。您还可以在每个子域上发布单独的策略(相同或不同的策略)。仅当访问者访问该站点(例如https://example.com)时才加载顶级策略,因此,如果访问者仅访问子域(例如https://www.example.com),则浏览器将不会缓存该顶级策略。最佳做法是在所有策略上使用includeSubDomains,并从顶级域中加载资产(例如单个像素或公司徽标),以强制采用该顶级策略,以便所有其他子域也受保护。仅当您没有任何仅使用HTTP的网站(例如http://intranet.example.comhttp://blog.example.com)时,这种方法才有用,在这种情况下,您最好的做法是拥有一个没有includeSubDomains的顶级策略,然后在每个策略上使用不同的策略完全支持includeSubDomains的HTTPS的子域。该证书与HSTS没有任何关系(事实是每个受保护的域显然都需要一个证书!)。

© www.soinside.com 2019 - 2024. All rights reserved.