# NET::ERR_CERT_AUTHORITY_INVALID：老安卓不信任 Let's Encrypt

> Android 7.1.1 之前的系统不信任 ISRG Root X1，2024 年交叉签名到期后，Let's Encrypt 证书在这些设备上报错。访客和站长分别怎么办。

Source: https://ssl.sh/zh/errors/old-android-lets-encrypt-error/
Last updated: 2026-11-10

**Android 7.0 及以前的设备打不开用 Let's Encrypt 证书的网站，是因为这些系统里没有 ISRG Root X1 根证书。** 过去几年有一个来自更老根证书的交叉签名把问题掩盖了，这条交叉签名证书链已于 2024 年 9 月 30 日到期。结果就是：内置浏览器和大多数 App 报证书颁发机构错误，新手机一切正常。

## 先判断是网站的问题还是你设备的问题

网站检测通过而老手机报错，问题就在设备上：Android 7.1.1 之前的系统不认 Let's Encrypt 的根证书。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 测网站：

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

检测通过、而且签发者是 Let's Encrypt，就打开“设置 → 关于手机”确认版本：Android 7.1.1 及以上应该正常。用老手机的访客可以换用自带根证书库的浏览器（安卓版 Firefox 历来如此，前提是还提供适配你系统的版本），但长远来看还是要换受支持的设备。

## 原因

直接原因是 Android 7.1.1 之前的系统没有 ISRG Root X1；2024 年 9 月 30 日交叉签名到期后，这些设备再没有可用的验证路径。

### 1. 设备里没有这个根证书

Android 7.1.1 加入了 ISRG Root X1。更早的版本只信任出厂时带的根证书，不更新就永远拿不到新根。

### 2. DST Root CA X3 交叉签名结束了

Let's Encrypt 曾经用一条经过 DST Root CA X3 的证书链让老安卓继续可用，利用的是安卓不检查根证书是否过期。2024 年 Let's Encrypt 默认不再提供这条链，交叉签名证书也在 2024 年 9 月 30 日到期。看看服务器发的是哪条链：

```bash
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null \
  | grep -E "^ *[0-9] s:|i:"
```

### 3. App 用的是系统信任库

大多数安卓 App 用系统根证书。在老设备上会报 [Trust anchor for certification path not found](https://ssl.sh/zh/errors/android-trust-anchor-not-found/)，哪怕某个自带根证书的浏览器能打开。

### 4. 嵌入式和长期服役设备

电视盒子、收银机、自助终端、车机经常跑着老安卓且无法升级，这在国内的门店、政务大厅等场景尤其常见，属于业务问题而不只是个人用户的问题。

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

只有 Android 7.0 及以前的设备报错，Android 7.1.1 及以后的设备和电脑浏览器都正常。

| 设备 | 显示内容 |
|---|---|
| Android 7.0 及以前，Chrome 或系统浏览器 | “您的连接不是私密连接”，代码 `NET::ERR_CERT_AUTHORITY_INVALID` |
| Android 7.0 及以前，App | `Trust anchor for certification path not found` |
| Android 7.1.1 及以后 | 正常 |
| 电脑浏览器 | 正常 |

## 站长怎么修

站长先决定要不要支持老设备；要支持，就给这些设备访问的域名换用证书链兼容的 CA，或者在自家 App 里内置 ISRG Root X1。

**1. 先确定要不要支持老设备。** 看统计里 Android 7.1.1 以下的占比。普通网站往往很少，但终端设备、合作方设备可能很重要。

**2. 给这些设备访问的域名换用证书链兼容的 CA**（比如单独给接口用一个域名）。查看各家 CA 的兼容性说明，在真实的老设备上测试，再用 `curl ssl.sh/example.com` 和 [证书链工具](https://ssl.sh/zh/tools/chain-builder/) 核对。在阿里云、腾讯云购买证书时，也可以向客服确认该品牌证书链对老安卓的兼容情况。

**3. 自家 App** 在系统根证书之外内置 ISRG Root X1。Android 7.0 用网络安全配置；Android 6 及以前，用“系统根证书 + 内置根证书”构造的 TrustManager（比如 OkHttp 的 `HandshakeCertificates` 加上平台证书），绝不要用信任一切的实现。

**4. 关注根证书变化。** 在 [Let's Encrypt 时间线](https://ssl.sh/zh/timeline/lets-encrypt/) 上跟踪证书链的调整，避免下次再被打个措手不及。
