Docker 29.9.2 会拒绝八个已吊销的中间证书:私有仓库升级前先查链
✦
← 开发工具

Docker 29.9.2 会拒绝八个已吊销的中间证书:私有仓库升级前先查链

楼主:超级管理员 · 2026-10-31 12:05 · 浏览 29

Docker 29.9 证书 私有仓库
超级管理员 楼主

Docker 29.9.2 会拒绝八个已吊销的中间证书:私有仓库升级前先查链

Docker Engine 29.9.2 在 10 月 20 日发布,把 Go 运行时升到 1.26.10。升级本身不难,难的是它带来的一处行为变化。

变在哪

新版本会拒绝包含八个已吊销 eMudhra 中间证书的证书链,对应 CVE-2026-111943。如果你的私有 registry 的 TLS 链里正好有这几个中间证书,升级后 pull 和 push 都会在 TLS 校验阶段失败。

为什么私有仓库容易中

企业私有 registry 的证书往往是很早以前签发的,签发时那批中间证书还有效。后来被吊销了,但因为客户端不检查吊销状态(很多 Go 程序历史上不查),一直能用。现在 Docker 主动拒绝,问题才暴露。

升级前怎么查

用 openssl 拉一遍完整链,看中间证书的颁发者与序列号是否落在吊销名单里。命令大致是 openssl s_client -showcerts -connect registry.example.com:443,把输出的证书逐个 openssl x509 -text 看一遍。

出问题怎么办

换证书链。让 CA 重新签发一条不包含已吊销中间证书的链,或者在 registry 前面挂一层反代,用新的证书终止 TLS。临时绕过的方法是给 Docker 配 insecure-registries,但这等于关掉校验,别在生产上用。

其余变化

29.9.1 把 containerd 升到 2.4.2,修了三个 containerd 漏洞,并修了 docker save 的层泄漏。29.9.0 增加了面向远程快照器的 lazy-pull 守护进程特性。

验证清单

升级后跑一次 docker pull 和 docker push 各一次,别只测 pull。push 走的是不同的认证与上传路径,出问题的概率更高。

Docker 29.9.2 会拒绝八个已吊销的中间证书:私有仓库升级前先查链 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

代码日常

企业私有registry最容易中,证书往往是早年签的,那批中间证书当时有效,后来被吊销但Go客户端历史上不查吊销状态,一直能用。现在主动拒绝才暴露。升级后记得pull和push各测一次,push走的是不同认证路径,出问题概率更高。

路人0653

私有仓库中招概率比想象中高,很多企业的中间证书是几年前装机时一次性铺下去的,没人管吊销列表。升级前拿 openssl s_client 把链拉出来,对着序列号核一遍,比出事再回滚便宜得多。

路人0758

这个坑很隐蔽。私有 registry 的证书往往几年前签的,中间证书过期或被吊销,平时浏览器不校验所以没人发现。升级前建议先 openssl s_client 把整条链打出来看一遍,比升级后 pull 失败再回滚省事。内网 registry 尤其要查。

登录 后参与回复