第 3 章 Red Hat build of OpenJDK 功能
最新的 Red Hat build of OpenJDK 11 发行版本可能包括新功能。另外,最新版本可能会增强、弃用或删除来自以前红帽构建的 OpenJDK 11 版本的功能。
有关所有其他更改和安全修复,请参阅 OpenJDK 11.0.21 发行版本。
3.1. 红帽构建的 OpenJDK 新功能及改进
查看以下发行注记以了解红帽构建的 OpenJDK 11.0.21 提供的新功能和功能改进:
增加 TLS Diffie-Hellman 的默认组大小
在红帽构建的 OpenJDK 11.0.21 中,OpenJDK 实现传输层安全(TLS) 1.2 使用默认的 Diffie-Hellman 密钥大小为 2048 位。这会取代之前版本中的行为,其中默认的 Diffie-Hellman 密钥大小为 1024 位。
当 TLS_DHE
密码套件被协商且客户端或服务器不支持 Finite Field Diffie-Hellman Ephemeral (FFDHE)参数时,这个增强是相关的。JDK TLS 实现支持 FFDHE,它默认是启用的,并可协商更强大的密钥大小。
作为临时解决方案,您可以通过将 jdk.tls.ephemeralDHKeySize
系统属性设置为 1024
来恢复到以前的密钥大小。但是,为了降低风险,请考虑使用默认密钥 2048 位。
这个更改不会影响 TLS 1.3,它已使用了最小 Diffie-Hellman 密钥 2048 位。
请参阅 JDK-8301700 (JDK Bug System)。
默认使用的服务器端密码套件首选项
在红帽构建的 OpenJDK 11.0.21 中,SunJSSE 供应商默认使用本地服务器端密码套件首选项。这会取代服务器使用连接客户端所指定的首选项的早期版本中的行为。
您可以通过在服务器端使用 SSLParameters.setUseCipherSuitesOrder (false)
恢复到之前的行为。
请参阅 JDK-8168261 (JDK Bug System)。
支持 PKCS#1 格式的 RSA 密钥
JDK 供应商现在可以接受 PKCS#1 格式的 Rivest-Shamir-Adleman (RSA)私钥和公钥,如 RSA KeyFactory.impl
from the SunRsaSign 供应商。此功能要求 RSA 私钥或公钥对象具有 PKCS#1 格式,以及与 PKCS#1 RSA 私钥和公钥匹配的 ASN.1 语法的编码。
请参阅 JDK-8023980 (JDK Bug System)。
-XshowSettings:locale
output 包括 tzdata
版本
在 Red Hat build of OpenJDK 11.0.21 中,-XshowSettings
launcher 选项还会打印 JDK 使用的 tzdata
版本。tzdata
版本显示为 -XshowSettings:locale
选项的输出的一部分。
例如:
Locale settings: default locale = English default display locale = English default format locale = English tzdata version = 2023c
请参阅 JDK-8305950 (JDK Bug System)。
Certigna root CA 证书
在 Red Hat build of OpenJDK 11.0.21 中,cacerts
truststore 包括 Certigna root 证书:
- 名称:Certigna (Dhimyotis)
- 别名名称:certignarootca
- 区分名称: CN=Certigna Root CA, OU=0002 48146308100036, O=Dhimyotis, C=FR
请参阅 JDK-8314960 (JDK Bug System)。
如果默认 java.security
文件无法加载,则抛出错误
在以前的版本中,如果 java.security
文件无法成功加载,Red Hat build of OpenJDK 会使用一组硬编码的安全属性。但是,这组属性不佳维护,JDK 使用这些工具的用户不明显。
要解决这个问题,如果 java.security
文件无法成功加载,红帽构建的 OpenJDK 11.0.21 会抛出 InternalError
。
请参阅 JDK-8155246 (JDK Bug System)。
在几个 JAAS 回调类中克隆的数组
在以前的版本中,当数组传递给构造或返回时,在 ChoiceCallback
和 ConfirmationCallback
JAAS 类中,这些阵列不会被克隆。此行为允许外部程序访问这些类的内部字段。
在红帽构建的 OpenJDK 11.0.21 中,JAAS 类返回克隆的阵列。