Let's Encrypt
Let's Encrypt 推出 Generation Y 根证书与中间证书
2025 年 11 月 24 日,Let's Encrypt 公布了一套名为 Generation Y 的新根证书和中间证书。两张新根证书 ISRG Root YR(RSA-4096)和 ISRG Root YE(ECDSA P-384)之下有 6 张新的中间证书,全部不能用于 TLS 客户端认证。截至 2026 年 6 月 3 日,Let's Encrypt 所有服务器证书配置都已从 Generation Y 层级或 ISRG Root X2 签发。
发生了什么
Generation Y 两张根证书的前代分别是 ISRG Root X1(RSA-4096)和 ISRG Root X2(ECDSA P-384),每张新根证书都由同类型密钥的前代根证书交叉签名。CA 会定期更换证书层级,一方面淘汰用了很多年的密钥,另一方面适应根证书计划的新规则。新根证书要进入各操作系统、浏览器和设备的信任库需要时间,在此之前,交叉签名让只信任老根证书的客户端也能构建出有效的证书链。
6 张新中间证书都不含 clientAuth 扩展密钥用途。这和 Let's Encrypt 停止支持 TLS 客户端认证,以及 Chrome 根证书计划要求证书层级专用于 TLS 是一致的。
影响谁
对大多数网站来说没有可见变化:ACME 客户端每次续期都会下载新的证书链,Web 服务器直接部署即可。下面几种情况容易出问题:
- 固定了中间证书:移动 App 里做了证书固定、防火墙或监控规则按某个签发者名称匹配、证书链文件是手工维护的;
- 服务器只发送了叶子证书或旧证书链:客户端会报缺少中间证书。国内一些面板或负载均衡控制台要求把“证书”和“证书链”分开粘贴,漏贴证书链是常见原因;
- 客户端信任库陈旧或自定义:老版本 Java、嵌入式设备、精简过的容器镜像,可能只能依靠交叉签名路径完成验证。
需要做什么
部署 ACME 客户端生成的完整证书链,比如 certbot 的 fullchain.pem,不要自己手工拼接。用面板或云控制台部署时,确认填入的是完整证书链而不只是叶子证书。另外:
- 不要固定中间证书。如果确实需要证书固定,固定自己能控制的对象,并准备备用固定值。
- 及时更新服务器和容器镜像里的
ca-certificates等根证书包。
查看服务器实际发送的证书链:
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null \
| grep -E '^ *[0-9]+ s:|^ *i:'
查看 Debian/Ubuntu 系统信任了哪些 ISRG 根证书:
ls /etc/ssl/certs | grep -i isrg
证书链补全工具可以根据叶子证书重建正确的证书链,SSL 检测工具会提示证书链是否完整,证书链指南讲解了客户端如何一路验证到根证书。关于这家 CA 的更多信息见 Let's Encrypt 介绍页。
常见问题
Let's Encrypt 换证书层级,我需要做什么?
通常什么都不用做。只要 ACME 客户端写出完整证书链、Web 服务器部署的就是这个文件,续期时新中间证书会自动到位。只有固定了中间证书或手工拼接证书链的环境才会出问题。
新根证书为什么要交叉签名?
新根证书要进入所有操作系统和设备的信任库需要好几年。在此期间,旧根证书的交叉签名让只信任 ISRG Root X1 或 X2 的客户端依然能构建出有效的证书链。
Generation Y 两张根证书用什么密钥?
ISRG Root YR 用 RSA-4096,ISRG Root YE 用 ECDSA P-384。它们分别接替密钥类型相同的 ISRG Root X1 和 ISRG Root X2,并由前代根证书交叉签名。