eMudhra 八个中间 CA 证书私钥泄露,OpenJDK 运行时需紧急处理
来源标题:Compromised Certificates and OpenJDK Java Runtimes
eMudhra 的八个中间 CA 证书私钥已遭泄露。使用第三方 OpenJDK 运行时的用户需立即更新到修复 JDK-8395690(CVE 2026-114820)的版本,或从 keystore 中删除相关根证书。厂商尚未发布更新时,应备份 keystore 后再删除对应证书。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
据广泛报道,八个 eMudhra 中间 CA 证书的私钥已被泄露。请运行 CheckCerts.java 程序,它适用于 JDK 8 及更高版本。如果你使用的是从供应商处下载的独立 OpenJDK Java 运行时,请立即采取以下措施之一——即使你在过去几天内已经更新过运行时。
如果有可用更新,请从你偏好的供应商处下载并安装更新后的运行时。该运行时的发行说明中应记录它修复了问题 JDK-8395690、CVE 2026-114820。如果你的供应商尚未发布更新后的运行时,请考虑采取其余措施之一。
备份运行时的 keystore。对于 JDK 11 及更高版本,keystore 位于文件 $JDK_HOME/lib/security/cacerts 中。对于 JDK 8,keystore 位于文件 $JDK_HOME/jre/lib/security/cacerts 中。
从运行时的 keystore 中删除相关根证书。对于 JDK 11 及更高版本:
$ keytool -delete -cacerts -alias "emsignrootcag1 [jdk]"
$ keytool -delete -cacerts -alias "emsignrootcag2 [jdk]"
$ keytool -delete -cacerts -alias "emsigneccrootcag3 [jdk]"
$ keytool -delete -cacerts -alias "comodoaaaca [jdk]"
对于 JDK 8:
$ keytool -delete -keystore $JDK_HOME/jre/lib/security/cacerts -alias "emsignrootcag1 [jdk]"
$ keytool -delete -keystore $JDK_HOME/jre/lib/security/cacerts -alias "emsignrootcag2 [jdk]"
$ keytool -delete -keystore $JDK_HOME/jre/lib/security/cacerts -alias "emsigneccrootcag3 [jdk]"
$ keytool -delete -keystore $JDK_HOME/jre/lib/security/cacerts -alias "comodoaaaca [jdk]"
忽略任何提示证书不存在的错误消息。
重启该运行时的所有正在运行的实例。如果你安装了多个独立的 OpenJDK Java 运行时,请对每个安装重复这些步骤。
对于使用 TLS 的应用程序,如果你尚未启用吊销检查,请将以下参数添加到应用程序的 java 命令行中:
-Dcom.sun.net.ssl.checkRevocation=true
-Dcom.sun.security.enableCRLDP=true
对于已签名的 JAR 文件,在 JDK 17 及更高版本中,使用以下命令验证每个已签名的 JAR 并检查吊销状态:
$ jarsigner -verify -revcheck -strict $SIGNED_JAR
如果你使用的是由操作系统软件包提供的 OpenJDK Java 运行时,它很可能使用操作系统的证书。Arch Linux、Fedora、Gentoo、Oracle Linux 和 Red Hat Enterprise Linux 中的 OpenJDK 软件包就是如此。对于这些系统,更新操作系统的证书通常就足够了。
Debian Linux 及其衍生发行版(例如 Devuan 和 Ubuntu)中的 OpenJDK Java 运行时软件包需要手动变通方案。这些运行时旨在通过相关的 ca-certificates-java 软件包使用来自 ca-certificates 软件包的操作系统证书。然而,由于后者存在一个长期未修复的 bug,仅更新这两个软件包并不足够。变通方案是删除并重新创建操作系统的 Java keystore。为此,你必须拥有超级用户权限:
# rm -f /etc/ssl/certs/java/cacerts
# update-ca-certificates --fresh
FreeBSD 和 Homebrew 中的 OpenJDK Java 运行时软件包不使用操作系统的证书。请在更新可用后直接更新这些软件包。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。