Let’s Encrypt 根证书 ISRG Root X1 与 ISRG Root X2 的兼容性

当前 Let’s Encrypt 使用的是 ISRG 的 ISRG Root X1 或 ISRG Root X2 根证书,这两份根证书在多年前(ISRG Root X1 于 2016 年末,ISRG Root X2 于 2022 年中)就已收录至各平台的证书库中,但用户普遍完成版本更新则可能需要更长的时间。

目前 ISRG Root X1 已经得到了广泛信任,但 ISRG Root X2 仍待普及。

本来这个没什么好水的,但在本月初申请Let’s Encrypt的证书时我把其默认的证书连进行了一些替换而产生了一个兼容性的问题,由此干脆就以此为由水这一篇文章吧。

申请Let’s Encrypt的ECC证书时下发的证书链是使用ISRG Root X1交叉签名的中间证书,在我部署使用一会儿后突发奇想的替换成ISRG Root X2签名的中间证书。替换之后发现手机还是链接到X1的根证书就一直以为替换失败,不知不觉的到了今天前一会还能正常访问的突然就提示“你的连接不是专用连接”的错误直接把我拒之门外(开启了HSTS),于是就点开证书信息进行查看。咋一看还没有发现有什么异常,刚好这个时候我访问过某个网站有提示证书错误的问题,一度以为是网络的问题,于是就换一台手机进行测试,这一测试发现换了一台手机后正常访问,同时也比对一下证书的序列号跟指纹都一模一样啊,在一层一层的比对中初见端倪。

发现异常的那台手机缺少一层根证书,因为前一会还可以现在就不见了还以为是我不小心误删了对应的根证书呢?但在后来的仔细确认中发现不知道什么时候中间证书的证书链突然变成了ISRG Root X2(之前自己替换后没生效就没有再替换回去)的。在能成功打开的手机中也明确显示出使用点点就是ECDSA 用户证书 ← ECDSA 中间证书(E5 或 E6)← ISRG Root X2这条证书链,先不去搜索ISRG Root X2的支持程度而是直接自己去查看手机的根证书,可见的就是新的手机的系统(Android 14)中已经内置该根证书,而旧的手机系统(Android 12)中没有内置,苹果手机(IOS 18)也已经内置。

在自己下载安装新的根与替换回交叉签名的中间证书之间还是选择替换回去吧,虽然实际没有多少访问量的说。五年前给Android 4.2.2的系统自己安装过Buypass Class 2 CA 5的根让自己能正常访问自己的网站。

附:证书兼容性

信任 ISRG Root X1 的平台

  • Windows >= XP SP3, Server 2008 (关闭了自动根证书更新的系统除外)
  • macOS >= 10.12.1 Sierra
  • iOS >= 10
  • Android >= 7.1.1
  • Firefox >= 50.0
  • Ubuntu >= 12.04 Precise Pangolin (需更新软件包)
  • Debian >= 8 / Jessie (需更新软件包)
  • RHEL >= 6.10, 7.4 (需更新软件包), 8+
  • Java >= 7u151, 8u141, 9+
  • NSS >= 3.26
  • Chrome >= 105 (更低版本直接使用操作系统的证书库)
  • PlayStation >= PS4 v8.0.0

信任 ISRG Root X2 的平台

  • Windows >= XP SP3, Server 2008 (关闭了自动根证书更新的系统除外)
  • macOS >= 13
  • iOS >= 16
  • Android >= 14
  • Firefox >= 97
  • Ubuntu >= 18.04 Bionic Beaver (需更新软件包)
  • Debian >= 12 / Bookworm
  • RHEL >= 7.9, 8.6, 9.1 (需更新软件包)
  • Java >= 21.0.2
  • NSS >= 3.74
  • Chrome >= 105 (更低版本直接使用操作系统的证书库)

另外,所有信任 ISRG Root X1 的平台都可以信任 ISRG Root X2 的交叉签名版本。

来源于“《证书兼容性》(https://letsencrypt.org/zh-cn/docs/certificate-compatibility/)最近更新: August 25, 2024 ”的文档内容。

缓存了这么久才突然更像到新的证书链?还是自建节点的证书同步问题就不得而知了,反正是现在已经改回ECDSA 用户证书 ← ECDSA 中间证书(E5 或 E6)← ISRG Root X1这条证书链的配置以供我不愿升级的手机能正常访问了。也不知道还能不能升级到Android 14也不好说,其实实在不行自己安装这个根也不是不可以的,除非像那太老的Android 4.2.2就不得不自己安装对应的根才能愉快的“玩耍”了。配置最低TLS1.2老系统老设备访问都有些艰难了的说……

证书信任链
https://letsencrypt.org/zh-cn/certificates/

Buypass Go SSL : Buypass Root certificates (Buypass Class 2 CA 5) (PEM)
https://www.cyzwb.com/2020/04/210.html

ChiuYut

2025年07月16日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!