# “警告：面临潜在的安全风险”：Firefox 各错误代码含义和修法

> Firefox 提示“警告：面临潜在的安全风险”说明证书校验失败。点“高级”能看到具体错误代码，按代码找原因和修法。

Source: https://ssl.sh/zh/errors/firefox-potential-security-risk-ahead/
Last updated: 2026-11-10

**“警告：面临潜在的安全风险”表示 Firefox 无法确认网站证书可信，所以在加载页面之前停了下来。** 不同的问题用的都是这个标题，点“高级…”后显示的代码才说明具体是哪一种。

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

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

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

- **检测也发现问题**（过期、域名不符、签发者不受信任）：网站证书的问题。涉及登录或付款的网站，访客不要绕过警告。
- **检测显示证书正常**：原因在本地。先看电脑日期，再看有没有杀毒软件或公司代理在拦截 HTTPS。Firefox 能识别出很多这类拦截，会显示 `MOZILLA_PKIX_ERROR_MITM_DETECTED`。

## 原因

这个警告背后最常见的代码是 SEC_ERROR_UNKNOWN_ISSUER。下面 5 个代码按出现频率排序，点“高级…”后对照查找。

### 1. SEC_ERROR_UNKNOWN_ISSUER

Firefox 无法把证书连到受信任的根：私有 CA 缺中间证书、自己签的证书，或者 Firefox 不认识的拦截根证书。详见 [SEC_ERROR_UNKNOWN_ISSUER](https://ssl.sh/zh/errors/sec-error-unknown-issuer/)。

### 2. SSL_ERROR_BAD_CERT_DOMAIN

证书签给了别的域名。详见 [SSL_ERROR_BAD_CERT_DOMAIN](https://ssl.sh/zh/errors/ssl-error-bad-cert-domain/)。

### 3. SEC_ERROR_EXPIRED_CERTIFICATE

证书过期，或者你的电脑时间不对。详见 [SEC_ERROR_EXPIRED_CERTIFICATE](https://ssl.sh/zh/errors/sec-error-expired-certificate/)。

### 4. MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

自签名证书，路由器、NAS、测试服务器最常见。详见 [自签名证书报错](https://ssl.sh/zh/errors/mozilla-pkix-error-self-signed-cert/)。

### 5. MOZILLA_PKIX_ERROR_MITM_DETECTED

安全软件或代理正在拦截连接。详见 [MITM_DETECTED](https://ssl.sh/zh/errors/mozilla-pkix-error-mitm-detected/)。

### 其他代码

`SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE`（中间证书过期）、`MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE`（电脑时间慢了）、[SEC_ERROR_INADEQUATE_KEY_USAGE](https://ssl.sh/zh/errors/sec-error-inadequate-key-usage/) 也会出现在这个页面上。

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

同一个证书问题，Firefox 显示“警告：面临潜在的安全风险”，Chrome 和 Safari 显示各自的警告页。

| 浏览器 | 对应页面 |
|---|---|
| Firefox | “警告：面临潜在的安全风险”；HSTS 网站显示“未连接：有潜在的安全问题” |
| Firefox（协议错误） | “建立安全连接失败”，例如 [PR_END_OF_FILE_ERROR](https://ssl.sh/zh/errors/pr-end-of-file-error/) |
| Chrome / Edge / 360 / QQ 浏览器 | [“您的连接不是私密连接”](https://ssl.sh/zh/errors/your-connection-is-not-private/) |
| Safari | [“此连接非私人连接”](https://ssl.sh/zh/errors/safari-this-connection-is-not-private/) |

## 站长怎么修

站长要先在浏览器之外复现问题，再发送完整证书链、补全 SAN，最后用 Firefox 复测。

**1. 在浏览器之外复现。** `curl ssl.sh/example.com` 能看出哪一项没通过。Firefox 是很好的测试客户端：它不通过 AIA 下载缺失的中间证书（不过会预加载公开 CA 的中间证书）。

**2. 发送完整、有效的证书链。** Nginx 用 fullchain 文件：

```nginx
ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
```

CA 只给了站点证书的话，用 [证书链工具](https://ssl.sh/zh/tools/chain-builder/) 生成正确的证书链。宝塔面板粘贴证书时，“证书（PEM 格式）”一栏要包含中间证书。

**3. 所有域名都写进 SAN**，到期前续期，用 ACME 自动化。

**4. 每次改完都用 Firefox 测。** 用隐私窗口可以避开缓存；之前给这个网站加过例外的，先到“设置 → 证书 → 查看证书 → 服务器”里删掉再测。
