# HSTS 检查：测试 Strict-Transport-Security 和预加载

> 检查网站的 Strict-Transport-Security 响应头：max-age、includeSubDomains、preload，以及能否加入 HSTS 预加载列表。

Source: https://ssl.sh/zh/tools/hsts-checker/
Last updated: 2026-11-10

检查网站的 Strict-Transport-Security 响应头，以及它是否满足浏览器 HSTS 预加载列表的要求。

HSTS 检查会通过 HTTPS 访问网站，显示它的 `Strict-Transport-Security` 响应头。输入域名，点 **检查 HSTS**，工具会解析 `max-age`、`includeSubDomains` 和 `preload`，并逐项对照浏览器预加载列表的要求。

## 怎么用

1. 输入域名，比如 `example.com`。建议测主域名，预加载是按注册域名提交的。
2. 点 **检查 HSTS**。
3. 修改不满足的项，再测一次。

## HSTS 的作用

浏览器通过 HTTPS 收到有效的 HSTS 头后，会在 `max-age` 秒内记住这个主机只能走 HTTPS：输入 `http://` 会在发请求之前就被改成 HTTPS，证书出错时也不能再点“继续访问”。`includeSubDomains` 把规则扩展到所有子域名。

典型的响应头：

```text
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
```

## 预加载的要求

[HSTS 预加载列表](https://ssl.sh/zh/glossary/hsts-preload/)编译在 Chrome、Firefox、Safari、Edge 里，用户第一次访问就走 HTTPS。要被接受，需要：

1. 证书有效；
2. HTTP 跳转到同一主机的 HTTPS；
3. 所有子域名都支持 HTTPS；
4. 主域名的 HSTS 头 `max-age` 不小于 31536000，并包含 `includeSubDomains` 和 `preload`。

用宝塔面板时，可以在网站的配置文件里加上 HSTS 响应头。[TLS 配置生成器](https://ssl.sh/zh/tools/tls-config-generator/)可以生成 Nginx、Apache、IIS、Tomcat 等服务器的 HSTS 配置。开启 HSTS 之前，先用[混合内容扫描](https://ssl.sh/zh/tools/mixed-content-scanner/)确认页面里没有 http:// 资源。


## FAQ

**max-age 设多少合适？**

先设一个小值（比如 300 秒），确认所有页面和子域名在 HTTPS 下都正常，再逐步调大。长期值一般是一年（31536000）或两年（63072000），加入预加载列表至少要一年。

**预加载能撤销吗？**

能，但很慢。可以在 hstspreload.org 申请移除，但要随新版浏览器发布才生效，老版本用户会一直保留。提交前务必确认所有子域名（包括只在内网用、但挂在公网域名下的）都支持 HTTPS。

**HTTP 响应里也要加 HSTS 头吗？**

浏览器会忽略通过明文 HTTP 收到的 Strict-Transport-Security。在 HTTPS 响应里加，并把 HTTP 跳转到 HTTPS 即可。
