# NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED：缺少证书透明度凭证

> NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED 表示证书缺少 Chrome 要求的证书透明度（CT）SCT 凭证。原因和修法。

Source: https://ssl.sh/zh/errors/err-cert-transparency-required/
Last updated: 2026-11-10

**NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED 的意思是：证书来自公开 CA，但 Chrome 找不到它已被公开记录的证明。** 证书透明度（CT）要求每张公开信任的证书都记录在公开日志里，让错误签发的证书无处可藏。拿不出有效证明的证书会被拒绝。

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

外部检测发现 SCT 缺失，是网站证书的问题；外部检测正常，说明你的网络里有设备出示了另一张证书。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 查看证书里嵌入的 SCT：

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

- **检测提示缺少 SCT 或 SCT 无效**：证书本身有缺陷，网站要换证书，通常是让 CA 重新签发。
- **检测显示 SCT 正常**：你所在的网络里有东西出示了另一张链到公开根、却从未被记录的证书。这是严重的危险信号，不要继续，换个网络试试。

## 原因

这个错误有 4 种原因，多数是 CA 签发时出了问题，其次是拦截设备用公开链证书冒充网站。

### 1. CA 签发时没有嵌入 SCT

主流 CA 很少出这种问题，但签发流程配置错误或者走了非常规渠道时会发生。看看证书里有没有 “CT Precertificate SCTs” 扩展：

```bash
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -text | grep -A4 "CT Precertificate SCTs"
```

没有任何输出就说明没有嵌入 SCT。

### 2. SCT 数量不够，或来自不合格的日志

Chrome 的政策要求证书带有一定数量、来自它当前认可的日志的 SCT，具体数量取决于证书有效期。只记录在 Chrome 不认可的日志里的证书会失败。

### 3. 用公开链证书做拦截

如果某个代理设备不知怎么拿到了公开信任的中间证书，它生成的证书就没有 SCT。Chrome 拦截它，正是为了暴露这种滥用。

### 4. 电脑时间严重偏慢

设备时间早于 SCT 的时间戳，这些证明看起来就像来自未来。把时间改对。

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

Chrome 内核的浏览器和 Safari 都强制要求 CT，Firefox 只有较新的桌面版执行。

| 浏览器 | 显示内容 |
|---|---|
| Chrome / Edge / 360 / QQ 浏览器 | “您的连接不是私密连接”，代码 `NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED` |
| Safari | “此连接非私人连接”，苹果平台执行自己的 CT 政策 |
| Firefox | 较新的桌面版已开始执行 CT；老版本会正常打开 |

## 站长怎么修

修法是让 CA 重新签发带嵌入 SCT 的证书，部署后确认 SCT 扩展存在。

**1. 在 CT 日志里查这张证书。** 用 [CT 查询](https://ssl.sh/zh/tools/ct-search/) 搜你的域名，找不到这张证书就说明它从未被记录。

**2. 让 CA 重新签发**带嵌入 SCT 的证书，或者换成 ACME CA。主流公开 CA 默认都会嵌入 SCT；在国内代理商处购买的证书，可以联系代理商走 CA 的重签流程：

```bash
sudo certbot certonly --nginx -d example.com --force-renewal
```

**3. 部署并验证。** 重载服务后，用 `curl ssl.sh/example.com` 和 [证书解析](https://ssl.sh/zh/tools/certificate-decoder/) 确认 SCT 扩展存在。

**4. 链到私有根的内部域名**不需要任何处理。如果确有链到公开根的内部证书需要临时豁免，用企业策略统一配置，不要让员工各自改设置。原理见 [证书透明度](https://ssl.sh/zh/learn/certificate-transparency/)。
