- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 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
问题
dynamic_sts_observed
和dynamic_sts_expiry
的单位是什么。它看起来不像是在几秒钟内。值(value)是如何计算的? https://subdomain.example.com
我们使用的SSL证书是通配符证书。 *.example.com
。那么 HSTS 配置我需要包含子域吗?像 Strict-Transport-Security: max-age=2592000, includeSubDomain
最佳答案
它是 unix 纪元时间的秒数(即自 1/1/1970 以来)。正如 Joachim 的评论所述,您可以在此处查看和转换它:https://www.unixtimestamp.com/index.php
是。
就好像您从未见过 HSTS header (即不会强制执行 HTTPS)。
在下一次访问之后,按照 2,这是一个滑动到期,每次访问都会重新计算。
如果该策略处于顶层,则您需要使用 includeSubDomains
(请注意您在问题中遗漏了 S),以影响子域。您还可以在每个子域上发布单独的策略(相同的或不同的)。您的顶级策略仅在访问者访问该站点(例如 https://example.com )时加载,因此如果他们仅访问子域(例如 https://www.example.com ),则浏览器将不会缓存顶级策略。最佳做法是对所有策略使用 includeSubDomains
并从顶级域加载 Assets (例如单个像素或公司 Logo )以强制选择顶级策略,因此所有其他子域也受到保护。这仅在您没有任何仅限 http 的网站(例如 http://intranet.example.com 或 http://blog.example.com )时有效,在这种情况下,您能做的最好的事情就是制定没有 includeSubDomains
的顶级政策,然后每个完全支持 HTTPS 的子域的不同策略 includeSubDomains
。该证书与 HSTS 无关(除了事实上您显然需要为每个 protected 域提供一个!)。
关于ssl - HSTS 过期如何运作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563574/
我是一名优秀的程序员,十分优秀!