Eclipse Temurin 21.0.5 发行注记


Red Hat build of OpenJDK 21

Red Hat Customer Content Services

摘要

Eclipse Temurin 21.0.5 发行注记介绍了 OpenJDK 21 中的新功能以及潜在的已知问题列表和可能的临时解决方案。

前言

Open Java Development Kit (OpenJDK)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。Eclipse Temurin 在四个 LTS 版本中提供:OpenJDK 8u、OpenJDK 11u、OpenJDK 17u 和 OpenJDK 21u。

Eclipse Temurin 的二进制文件可用于 macOS、Microsoft Windows 和多个 Linux x86 操作系统,包括 Red Hat Enterprise Linux 和 Ubuntu。

提供有关红帽构建的 OpenJDK 文档的反馈

要报告错误或改进文档,请登录您的红帽 JIRA 帐户并提交问题。如果您没有红帽 JIRA 帐户,系统会提示您创建一个帐户。

流程

  1. 单击以下链接 来创建 ticket
  2. Summary 中输入有关此问题的简单描述。
  3. 提供有关 描述 中问题或增强功能的详细描述。包括一个 URL,以在文档中发生问题。
  4. Create 创建并将问题路由到适当的文档团队。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

第 1 章 Eclipse Temurin 的支持策略

红帽在其产品中支持选定的 Eclipse Temurin 主版本。为了实现一致性,这些版本与 Oracle 指定长期支持(LTS)的 Oracle JDK 版本类似。

自首次引入该版本时,Eclipse Temurin 的主要版本将最少提供六年。如需更多信息,请参阅 Eclipse Temurin 生命周期和支持政策

注意

RHEL 6 于 2020 年 11 月结束其生命周期。因此,Eclipse Temurin 不支持 RHEL 6 作为受支持的配置。

第 2 章 Eclipse Temurin 功能

Eclipse Temurin 不包含来自 OpenJDK 上游发行版的结构性更改。

新功能及功能增强

Eclipse Temurin 21.0.5 包括以下新功能和增强:

2024 年 11 月 11 日和由 Entrust root CA 发布的 TLS 服务器证书的不信任

根据 Google 和 Mozilla 最近宣布的类似计划,OpenJDK 21.0.5 信任于 2024 年 11 月 11 日和被 Entrust root 证书颁发机构(CA)发布的 TLS 证书。这个行为的变化包括任何品牌为 AffirmTrust 的证书,这些证书由 Entrust 管理。

OpenJDK 将继续信任 2024 年 11 月 11 日或之前发布的证书,直到这些证书过期。

如果服务器的证书链由受影响的证书决定,则任何尝试协商 TLS 会话现在都会失败,但表明信任锚不被信任。例如:

TLS server certificate issued after 2024-11-11 and anchored by a distrusted legacy Entrust root CA: CN=Entrust.net CertificationAuthority (2048), OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net

您可以使用以下 keytool 命令检查此更改是否影响 JDK 密钥存储中的证书:

keytool -v -list -alias <your_server_alias> -keystore <your_keystore_filename>

如果此更改会影响链中的任何证书,请更新此证书或联系负责管理证书的机构。

如果要继续使用 Entrust root 证书选择的 TLS 服务器证书,您可以通过修改 java.security. properties 系统属性或从 jdk.security.caDistrustPolicies 安全属性中删除 ENTRUST_TLS

注意

继续使用不信任的 TLS 服务器证书的风险自有风险。

这些限制适用于 OpenJDK 的以下 Entrust root 证书:

证书 1
  • Alias name: entrustevca [jdk]
  • 区分名称: CN=Entrust Root Certification Authority, OU=(c) 2006 Entrust, Inc., OU=www.entrust.net/CPS 由参考, O=Entrust, Inc., C=US
  • SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
证书 2
  • Alias name: entrustrootcaec1 [jdk]
  • 区分名称: CN=Entrust Root Certification Authority - EC1, OU=(c) 2012 Entrust, Inc. - 仅授权使用,OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US
  • SHA256: 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5
证书 3
  • Alias name: entrustrootcag2 [jdk]
  • 区分名称: CN=Entrust Root Certification Authority - G2, OU=(c) 2009 Entrust, Inc. - 仅授权使用,OU=See www.entrust.net/legal-terms, O=Entrust, Inc., C=US
  • SHA256: 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
证书 4
  • Alias name: entrustrootcag4 [jdk]
  • 区分名称: CN=Entrust Root Certification Authority - G4, OU=(c) 2015 Entrust, Inc. - 仅授权使用,OU=See www.entrust.net/legal-termsO=Entrust, Inc., C=US
  • SHA256: DB:35:17:D1:F6:73:2A:2D:5A:B9:7C:53:3E:C7:07:79:EE:32:70:A6:2F:B4:AC:42:38:37:24:60:E6:F0:1E:88
证书 5
  • Alias name: entrust2048ca [jdk]
  • 区分名称: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
  • SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
证书 6
  • Alias name: affirmtrustcommercialca [jdk]
  • distinguished name: CN=AffirmTrust Commercial, O=AffirmTrust, C=US
  • SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
证书 7
  • Alias name: affirmtrustnetworkingca [jdk]
  • distinguished name: CN=AffirmTrust Networking, O=AffirmTrust, C=US
  • SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0B4:1B
证书 8
  • Alias name: affirmtrustpremiumca [jdk]
  • distinguished name: CN=AffirmTrust Premium, O=AffirmTrust, C=US
  • SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
证书 9
  • Alias name: affirmtrustpremiumeccca [jdk]
  • distinguished name: CN=AffirmTrust Premium ECCO=AffirmTrust, C=US
  • SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23

请参阅 JDK-8337664 (JDK Bug System)JDK-8341059 (JDK Bug System)

KEM.getInstance () 方法检查第三方安全供应商是否已签名

JDK 的加密框架通过确定供应商的代码库和验证供应商的签名来验证第三方安全供应商实施。

在早期版本中,JDK 不会验证密钥封装机制(KEM)实现。

OpenJDK 21.0.5 以与其他 JDK 服务类型(如 Cipher 和 Mac 供应商)一致的方式验证 KEM 实现。

请参阅 JDK-8322971 (JDK Bug System)

减少详细区域设置输出 in -XshowSettings launcher 选项

在早期版本中,-XshowSettings launcher 选项打印了可用区域设置的长列表,这会模糊处理其他设置。

在 OpenJDK 21.0.5 中,-XshowSettings launcher 选项默认不再打印可用区域的列表。如果要查看与可用区域设置相关的所有设置,您可以使用 -XshowSettings:locale 选项。

请参阅 JDK-8310201 (JDK Bug System)

java . security.debug 系统属性的额外时间戳和 线程 选项

OpenJDK 21.0.5 在 java.security.debug 属性中添加以下选项,它可以应用到任何指定的组件:

  • +timestamp 选项打印带有每个 debug 语句的时间戳。
  • +thread 选项打印每个 debug 语句的线程和调用者信息。

例如,-Djava.security.debug=all+timestamp+thread 为带有时间戳和线程信息的所有组件启用调试信息。或者,-Djava.security.debug=properties+timestamp 仅为安全属性启用调试信息,并包括一个时间戳。您可以使用 -Djava.security.debug=help 显示支持的组件和选项的完整列表。

请参阅 JDK-8051959 (JDK Bug System)

添加 ssl.com 根证书

在 OpenJDK 21.0.5 中,cacerts truststore 包括两个 SSL.com TLS 根证书:

证书 1
  • 名称:SSL.com
  • 别名名称:ssltlsrootecc2022
  • 区分名称: CN=SSL.com TLS ECC Root CA 2022, O=SSL Corporation, C=US
证书 2
  • 名称:SSL.com
  • 别名名称:ssltlsrootrsa2022
  • distinguished name: CN=SSL.com TLS RSA Root CA 2022, O=SSL Corporation, C=US

请参阅 JDK-8341057 (JDK Bug System)

HTTP 客户端增强

OpenJDK 21.0.5 限制 HTTP 客户端在 JDK 中针对所有支持的 HTTP 协议版本接受的最大标头字段大小。标头字段大小计算为未压缩标头名称的总和、未压缩标头值的大小,以及每个字段部分行的开销为 32 字节。如果对等点发送超过这个限制的字段部分,则会引发 java.net.ProtocolException

OpenJDK 21.0.5 引入了 jdk.http.maxHeaderSize 系统属性,您可以使用它来更改最大标头字段大小(以字节为单位)。或者,您可以通过将 jdk.http.maxHeaderSize 属性设置为 0 或负值来禁用最大标头字段大小。jdk.http.maxHeaderSize 属性默认设置为 393,216 字节(即 384KB)。

JDK bug system reference ID: JDK-8328286

ClassLoadingMXBeanMemoryMXBean API 具有与 setVerbose () 方法一致的 isVerbose () 方法

ClassLoadingMXBean API 的 setVerbose (布尔值) 方法显示以下行为:

  • 如果启用true,则 setVerbose 方法在 Info 级别设置标准输出(stdout)的 class+load* 日志记录。
  • 如果启用false,则 setVerbose 方法在 stdout 中禁用 class+load* 日志记录。

在早期版本中,class LoadingMXBean API 的 isVerbose () 方法检查是否在任何类型的日志输出上启用了 class+load 日志记录,而不只是 stdout。在这种情况下,如果您使用 java -Xlog 选项启用对文件的日志,则 isVerbose () 方法返回 true,即使调用 setVerbose (false),这会导致计数器行为。MemoryMXBean API 的 isVerbose () 方法也显示类似的计数器行为。

从 OpenJDK 21.0.5 开始,classLoadingMXBean.isVerbose ()MemoryMXBean.isVerbose () 方法显示以下行为:

  • 只有当 Info 级别(或更高)在标准输出中启用了 class+load* 日志记录时,ClassLoadingMXBean::isVerbose () 才会返回 true
  • 只有在 stdout 上的 Info 级别(或更高)启用垃圾收集器日志时,MemoryMXBean::isVerbose () 才会返回 true

请参阅 JDK-8338139 (JDK Bug System)

更新于 2024-10-31

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.