# “网站使用了 HSTS，您目前无法访问”怎么办

> Chrome 对启用 HSTS 的网站遇到证书错误时不提供“继续前往”。为什么会这样、访客能安全检查什么、站长和开发者怎么修。

Source: https://ssl.sh/zh/errors/hsts-cannot-bypass/
Last updated: 2026-11-10

**“网站使用了 HSTS，您目前无法访问”的意思是：网站曾告诉你的浏览器“必须始终用有效的 HTTPS 证书访问我”（HSTS），而它刚才出示的证书没通过检查。** 因为 HSTS，Chrome 和 Firefox 会去掉“继续前往”选项。要修的是底下那个证书问题，而不是 HSTS 本身。

## 先判断是网站的问题还是你电脑的问题

外部检测发现证书有问题，要由网站修；外部检测正常，原因在你的设备或网络。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 独立测一下网站：

```bash
curl ssl.sh/example.com
```

- **检测显示证书有问题**：网站要修，访客只能等。
- **检测显示证书正常**：原因在你这边。常见的有系统日期不对、杀毒软件 HTTPS 扫描、公司代理、公共 Wi-Fi 认证页。点 Chrome 页面上的错误代码（比如 `NET::ERR_CERT_DATE_INVALID`）看是哪项检查失败，再看对应的报错页。

## 原因

HSTS 拦截背后有 5 种原因，最常见的是网站证书过期、缺域名或缺中间证书。

### 1. 网站证书坏了

HSTS 把原本可以点过去的警告变成了硬性拦截。见 [NET::ERR_CERT_DATE_INVALID](https://ssl.sh/zh/errors/net-err-cert-date-invalid/) 和 [NET::ERR_CERT_COMMON_NAME_INVALID](https://ssl.sh/zh/errors/net-err-cert-common-name-invalid/)。

### 2. 你的设备或网络在拦截

杀毒软件 HTTPS 扫描、公司 SSL 解密、公共 Wi-Fi 认证页都会出示它们自己的证书。遇到 HSTS 网站，任何不受信任的拦截都会被直接挡住。见 [公共 Wi-Fi 认证页报错](https://ssl.sh/zh/errors/captive-portal-ssl-error/) 和 [公司 SSL 解密](https://ssl.sh/zh/errors/corporate-ssl-inspection/)。

### 3. 系统时间不对

日期差太多，有效证书也会被判定为无效。把时间改对。

### 4. 开发环境用了预加载的域名

开发者用 `*.dev`、`*.app`，或者公司已预加载域名下的子域名，再配一张自签名证书，马上就会遇到这个错误，因为这些名字在所有浏览器里都是 HSTS 预加载的。

### 5. 设置过 HSTS 的主机后来没了 HTTPS

某个域名以前发过 `Strict-Transport-Security`，后来去掉了 HTTPS（或者迁到没有证书的主机），老访客在 `max-age` 到期前都会被拦住。常见于把网站从带证书的 CDN 换到只开 HTTP 的临时空间。

## 在各浏览器/系统上的样子

Chrome、Firefox 和 Safari 遇到 HSTS 网站的证书错误时，都不提供继续访问的选项。

| 浏览器 | 显示内容 |
|---|---|
| Chrome / Edge / 360 / QQ 浏览器 | 证书警告页说明“网站使用了 HSTS，您目前无法访问”，没有继续前往的链接 |
| Firefox | “未连接：有潜在的安全问题”，说明网站使用 HSTS、无法添加例外 |
| Safari | “此连接非私人连接”，没有“仍然访问”选项 |

## 站长怎么修

站长要先修好证书，再按子域名的实际情况设置 HSTS。

**1. 把证书修好。** 运行 `curl ssl.sh/example.com`，然后续期、补域名或发送完整证书链。

**2. 谨慎设置 HSTS。** 只有在包含的所有子域名都能正常 HTTPS 访问后再发送：

```nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
```

宝塔面板的 SSL 设置里有 HSTS 开关，打开前先确认所有子域名都配好了证书。用 [HSTS 检测](https://ssl.sh/zh/tools/hsts-checker/) 检查响应头。

**3. 自己的开发域名**可以删除动态 HSTS 记录：Chrome 打开 `chrome://net-internals/#hsts`，在“Delete domain security policies”里输入域名；Firefox 在“历史记录”里右键该网站，选“忘记此网站”。预加载条目用这种方法删不掉。

**4. 预加载撤销要好几个月。** 通过 hstspreload.org 撤销预加载，要等各浏览器发布新列表后才生效，所以只有在确定所有子域名都会长期保持 HTTPS 时才去预加载。原理见 [HSTS 详解](https://ssl.sh/zh/learn/hsts/)。
