# SEC_ERROR_OCSP_INVALID_SIGNING_CERT：Firefox OCSP 报错怎么修

> Firefox 的 SEC_ERROR_OCSP_INVALID_SIGNING_CERT、SEC_ERROR_OCSP_OLD_RESPONSE 等错误，表示吊销状态响应不可用。原因和修法汇总。

Source: https://ssl.sh/zh/errors/sec-error-ocsp-invalid-signing-cert/
Last updated: 2026-11-10

**SEC_ERROR_OCSP_INVALID_SIGNING_CERT 的意思是：Firefox 收到的证书状态（[OCSP](https://ssl.sh/zh/glossary/ocsp/)）响应，是由一张没有资格签它的证书签名的。** Firefox 会把不可信的吊销答复当作失败处理，而不是忽略它。同一系列还有响应过期、响应来自未来、响应被拒绝等错误。

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

网站装订的 OCSP 响应有问题，是网站或 CA 的问题；装订正常，先查电脑时间。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 查网站，它会显示服务器有没有装订 OCSP 响应、响应是否有效：

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

- **检测提示装订响应或 CA 的响应服务器有问题**：是网站或它的 CA 的问题。
- **检测正常**：先查电脑时间（OCSP 响应只在一个时间窗口内有效），再考虑杀毒软件或代理拦截 HTTPS 时把装订响应弄坏了。

## 原因

这类报错有 5 种原因：前 2 种是 OCSP 响应的签名证书不对，后 3 种各自对应 Firefox 的另一个 OCSP 错误码。

### 1. 服务器缓存了错误的装订响应

换证书或换 CA 之后，Web 服务器可能还在[装订](https://ssl.sh/zh/glossary/ocsp-stapling/)属于旧签发者的响应，Firefox 看到的就是“签名证书不对”。看看装订了什么：

```bash
openssl s_client -connect example.com:443 -servername example.com -status </dev/null 2>/dev/null \
  | sed -n '/OCSP response:/,/^---/p' | head -30
```

通常重启（不是重载）TLS 服务就能清掉缓存的装订响应。

### 2. 私有 CA 的响应服务器证书不对

委托的 OCSP 响应服务器证书必须由同一个 CA 签发，并带有 `OCSPSigning` 扩展密钥用途（RFC 6960 第 4.2.2.2 节）。手工搭建的响应服务器经常漏掉这一点。

### 3. 响应过期（SEC_ERROR_OCSP_OLD_RESPONSE）

服务器连不上 CA 的响应服务器（防火墙、DNS 问题），只好一直装订一个已经过了 `nextUpdate` 的旧响应。国内服务器访问部分境外 CA 的 OCSP 地址不稳定时容易出现。放行服务器到 CA OCSP 地址的出站 HTTP。

### 4. 时间问题（SEC_ERROR_OCSP_FUTURE_RESPONSE）

访客电脑时间慢了，改对时间即可，见 [系统时间错误](https://ssl.sh/zh/errors/wrong-system-clock-ssl-error/)。

### 5. 响应服务器出错（SEC_ERROR_OCSP_SERVER_ERROR、SEC_ERROR_OCSP_UNAUTHORIZED_RESPONSE）

CA 的响应服务器返回错误或拒绝请求，常发生在故障期间，一般是暂时的，CA 的状态页会有说明。

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

这组报错基本只出现在 Firefox：Chrome 对大多数证书不依赖实时 OCSP，Safari 有自己的吊销检查机制。

| 浏览器 | 显示内容 |
|---|---|
| Firefox | “建立安全连接失败”，代码为 `SEC_ERROR_OCSP_*` 之一 |
| Chrome / Edge / 360 / QQ 浏览器 | 通常不报错：Chrome 对大多数证书不依赖实时 OCSP |
| Safari | 通常能打开，苹果有自己的吊销检查机制 |

因为只有 Firefox 有反应，这类错误常被误以为是“Firefox 的问题”，但问题在服务器。

## 站长怎么修

修好装订响应就能消除报错；证书里没有 OCSP 地址时，直接关掉装订。

**1. 刷新或修好装订。** Nginx 的装订需要签发者证书链和 DNS 解析器：

```nginx
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/example.com.chain.pem;
resolver 223.5.5.5 119.29.29.29 valid=300s;
```

国内服务器可以用阿里 `223.5.5.5`、腾讯 `119.29.29.29` 这类公共 DNS。证书里没有 OCSP 地址时（比如现在的 Let's Encrypt 证书），装订不起作用，可以关掉。

**2. 换证书后重启服务**，丢掉旧的装订缓存：`systemctl restart nginx`。

**3. 私有 CA** 由签发 CA 重新给响应服务器签发带 `extendedKeyUsage=OCSPSigning` 的证书。

**4. 验证。** 用 `curl ssl.sh/example.com` 和 Firefox 测试。原理见 [OCSP 和 CRL](https://ssl.sh/zh/learn/ocsp-and-crl/)。
