红帽构建的 OpenJDK 11.0.14 发行注记
前言
Open Java Development Kit (OpenJDK)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。红帽构建的 OpenJDK 版本提供三个版本:红帽构建的 OpenJDK 8u、红帽构建的 OpenJDK 11u 和 Red Hat build of OpenJDK 17u。
红帽构建的 OpenJDK 的软件包在 Red Hat Enterprise Linux 和 Microsoft Windows 上提供,并在红帽生态系统目录中作为 JDK 和 JRE 提供。
提供有关红帽构建的 OpenJDK 文档的反馈
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 红帽构建的 OpenJDK 支持政策
红帽在其产品中支持选择版本的 OpenJDK 的主版本。为实现一致性,这些版本与 Oracle JDK 的长期支持(LTS)指定的版本相同。
自首次引入该版本起,红帽构建的 OpenJDK 主版本将最少提供六年的支持。如需更多信息,请参阅 OpenJDK 生命周期和支持政策
RHEL 6 于 2020 年 11 月结束其生命周期。因此,红帽构建的 OpenJDK 不支持 RHEL 6 作为支持的配置。
第 2 章 与上游 OpenJDK 11 的不同
Red Hat 在 Red Hat Enterprise Linux (RHEL)中构建 OpenJDK 包含了来自 OpenJDK 上游发行版的许多结构更改。红帽构建的 Microsoft Windows 版本尝试尽快遵循 RHEL 更新。
以下列表详细介绍了 OpenJDK 11 最显著的红帽构建变化:
- FIPS 支持。Red Hat build of OpenJDK 11 会自动检测 RHEL 是否处于 FIPS 模式,并自动配置红帽构建的 OpenJDK 11 以在该模式下运行。此更改不适用于适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建。
- 加密策略支持。红帽构建的 OpenJDK 11 从 RHEL 获取启用的加密算法和密钥大小限制列表。这些配置组件由传输层安全(TLS)加密协议、证书路径验证和任何签名的 JAR 使用。您可以设置不同的安全配置集来平衡安全性和兼容性。此更改不适用于适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建。
-
RHEL 上的红帽构建的 OpenJDK 会动态链接到原生库,如
zlib
用于归档格式支持,libjpeg-turbo
、libpng
和giflib
用于镜像支持。RHEL 还动态链接Harfbuzz
和Freetype
用于字体渲染和管理。 -
src.zip
文件包含红帽构建的 OpenJDK 附带的所有 JAR 库的源。 - RHEL 上的红帽 OpenJDK 构建使用系统范围的时区数据文件作为时区信息的来源。
- RHEL 上的红帽构建的 OpenJDK 使用系统范围的 CA 证书。
- Microsoft Windows 上的红帽构建的 OpenJDK 包括 RHEL 的最新可用时区数据。
- Microsoft Windows 上的红帽构建的 OpenJDK 使用 RHEL 的最新可用 CA 证书。
其他资源
- 有关检测系统是否处于 FIPS 模式的更多信息,请参阅 Red Hat RHEL 计划 JIRA 中的增强系统 FIPS 检测示例。
- 有关加密策略的更多信息,请参阅使用系统范围的加密策略。
第 3 章 Red Hat build of OpenJDK 11.0.14.1 发行注记
查看以下发行注记以了解此红帽构建的 OpenJDK 11.0.14 补丁版本的变化:
3.1. 解决了 https://google.com 连接问题
红帽构建的 OpenJDK 11.0.14.1 发行版本解决了在使用 Java HTTP 客户端 java.net.HTTPClient
时标识的问题,以连接到 https://google.com URL。这个问题仍然保留在适用于 Microsoft Windows 的红帽构建的 OpenJDK 构建以及 RHEL 的 OpenJDK 构建的 Red Hat build 中。
初始红帽构建的 OpenJDK 11.0.14 发行版本包含了一个回归问题,它已被改进引入到 HTTP 客户端。这个回归会导致 :authority
和 Host
标头字段在 HTTP/2 请求中发送,这些请求会被拒绝,如 Google 的服务器。当您尝试建立此连接时,您会收到异常信息。此异常消息表示 Java HTTP 客户端无法使用 HTTP/2 协议成功通信。
尝试使用 java.net.HTTPClient
连接到 https://google.com 时异常消息示例
java.util.concurrent.ExecutionException: java.io.IOException: Received RST_STREAM: Protocol error
红帽构建的 OpenJDK 11.0.14.1 发行版本通过恢复到在 HTTP/2 请求中发送 :authority
标头字段的原始行为来解决这个问题。
有关此问题及其解决方式的更多信息,请参阅 JDK-8218546,并查看与红帽构建的 OpenJDK 11.0.14.1 发行版本相关的公告。
第 4 章 Red Hat build of OpenJDK 功能
最新的 Red Hat build of OpenJDK 11 发行版本可能包括新功能。另外,这个最新版本可能会增强、弃用或删除来自以前红帽构建的 OpenJDK 11 版本的功能。
有关所有其他更改和安全修复,请参阅 OpenJDK 11.0.14 发行版本。
4.1. 新功能及功能增强
查看以下发行注记以了解红帽构建的 OpenJDK 11.0.14 发行版本中包含的新功能和功能增强:
归档文件系统供应商
对于红帽构建的 OpenJDK 11.0.14,归档文件系统供应商拒绝包含句点(.)或两个点(..)的文件名元素的现有存档文件。如果您试图使用包含这些命名元素的现有存档文件作为系统文件,并且调用 java.nio.file.FileSystems.newFileSystem (…)
方法,则方法会在命令行界面中抛出 ZipException
错误消息。
有关归档文件系统提供程序的更改的更多信息,请参阅 JDK-8271517。
IANA 时区数据库
互联网编号分配机构(IANA)将其时区数据库更新至 2021c 版本。Red Hat OpenJDK 日期和时间库依赖于 IANA 的时区数据库来确定全球各种区域的本地时间。
2021b 发行版本的 Time Zone Database 更新了时区规则,这些规则在 1970 之前存在。有关 2021b 发行版本的更多信息,请参阅 2021b 发布 tz 代码和数据。
有关 IANA 时区数据库的更多信息,请参阅 IANA 网站上的时区数据库。https://www.iana.org/time-zones
有关 IANA 2021c Time Zone 数据库发行版本的更多信息,请参阅 JDK-8274857。
OpenJDK 对 Microsoft Windows 版本进行标识
在 Red Hat build of OpenJDK 11 之前,从 System.getProperty ()
检索的 os.name
系统属性,HotSpot 错误日志会在 Microsoft Windows 11 上的 Microsoft Windows 11 和 Windows Server 2019 上报告 Windows 10.0
on Microsoft Windows 11 和 Windows Server 2019
。红帽构建的 OpenJDK 现在标识了这些系统上的正确版本。
GC.heap_dump
诊断命令的新选项
红帽构建的 OpenJDK 11.0.14 将 gz
整数选项添加到 jcmd
工具的 GC.heap_dump
诊断命令中。
您可以使用这个选项启用 gzip
压缩,并在创建堆转储时设置压缩级别。压缩级别值的范围为 1 到 9,值为 1 作为速度最快的设置,值 9 作为最慢的设置。
有关 gz
整数选项的更多信息,请参阅 JDK-8250554。
Microsoft Windows 版本
在 Microsoft Windows 11 或 Microsoft Windows Server 2022 上运行的红帽构建的 OpenJDK 现在会在 System.getProperty ()
系统属性的 os.name
值和任何 HotSpot 错误日志中显示正确的 Microsoft Windows 版本。在红帽构建的 OpenJDK 11.0.14 发行版本之前,如果您将 Microsoft Windows 操作系统或 Microsoft Windows Server 更新至更新的版本,则无法实现此行为。
禁用 TLS 扩展的系统属性
您可以使用两个新系统属性禁用 TLS 协议的传输层安全(TLS)扩展。这些系统属性的详情如下:
-
JDK.tls.client.disableExtensions
,它禁用 TLS 客户端使用的 TLS 扩展。 -
JDK.tls.server.disableExtensions
,它禁用 TLS 服务器使用的 TLS 扩展。
禁用的 TLS 扩展不会形成 TLS 握手进程的一部分。您不能禁用强制 TLS 扩展,因为这些 TLS 扩展对于建立 TLS 握手至关重要。
两个系统属性都忽略重复的、拼写错误、未知和不支持的 TLS 扩展名称。扩展名称必须符合互联网编号分配机构(IANA)规范。
有关这些新系统属性的更多信息,请参阅 JDK-8260310。
有关符合 IANA 规范的 TLS 扩展的更多信息,请参阅 IANA 网站上的 传输层安全(TLS)扩展。
SunPKCS11
供应商配置属性
SunPKCS11
供应商包含新的配置属性,用于增强原生资源的使用,如密钥对象。SunPKCS11
供应商必须使用原生资源才能与原生 PKCS11 库一起使用。
属性 | 类型 |
---|---|
| 布尔值 |
| 整数 |
| 整数 |
有关新的 SunPKCS11
供应商配置属性的更多信息,请参阅 JDK-8272907。
4.2. 弃用和删除的功能
查看以下发行注记以了解在 Red Hat build of OpenJDK 11.0.14 发行版本中已弃用或删除的预先存在的功能:
Google GlobalSign root 证书
红帽构建的 OpenJDK 11.0.14 从 cacerts
密钥存储中删除以下 root 证书:
- 别名名称
- globalsignr2ca [jdk]
- 可区分名称
- CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
有关删除 Google GlobalSign root 证书的更多信息,请参阅 JDK-8272535。
第 5 章 与本发行版本相关的公告
以下公告已发布到这个版本中包含的程序错误修复和 CVE 修复。
更新于 2024-05-10