Eclipse Temurin 21.0.5 のリリースノート
概要
はじめに
Open Java Development Kit (OpenJDK) は、Java Platform Standard Edition (Java SE) のオープンソース実装です。Eclipse Temurin は、OpenJDK 8u、OpenJDK 11u、OpenJDK 17u、OpenJDK 21u の 4 つの LTS バージョンで利用できます。
Eclipse Temurin のバイナリーファイルは、macOS、Microsoft Windows と、Red Hat Enterprise Linux や Ubuntu を含む複数の Linux x86 オペレーティングシステムで利用できます。
Red Hat build of OpenJDK ドキュメントへのフィードバック
エラーを報告したり、ドキュメントの改善を提案したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 次のリンクをクリックして チケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Create をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Eclipse Temurin のサポートポリシー
Red Hat は、一部の Eclipse Temurin のメジャーバージョンをサポートします。一貫性を保つために、これらのバージョンは、Oracle が長期サポート (LTS) として指定している Oracle JDK バージョンと同様のままとなります。
Eclipse Temurin のメジャーバージョンは、最初に導入された時点から少なくとも 6 年間サポートされます。詳細は、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 ルート CA によってアンカーされた TLS サーバー証明書を信頼できなくなる
Google と Mozilla が最近発表した同様の計画に従い、OpenJDK 21.0.5 は、2024 年 11 月 11 日以降に発行され、Entrust ルート認証局 (CA) によってアンカーされた TLS 証明書を信頼しません。この動作の変更には、Entrust によって管理されている AffirmTrust というブランドのすべての証明書が含まれます。
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 ルート証明書でアンカーされた TLS サーバー証明書を引き続き使用する場合は、jdk.security.caDistrustPolicies
セキュリティープロパティーから ENTRUST_TLS
を削除するには、java.security
設定ファイルを変更するか、java.security.properties
システムプロパティーを使用します。
信頼されていない TLS サーバー証明書を引き続き使用する場合は、お客様の責任となります。
これらの制限は、OpenJDK に含まれる次の Entrust ルート証明書に適用されます。
- 証明書 1
- エイリアス名: 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
- エイリアス名: 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
- エイリアス名: entrustrootcag2 [jdk]
- Distinguished name: 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
- エイリアス名: entrustrootcag4 [jdk]
- Distinguished name: 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
- エイリアス名: 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
- エイリアス名: firmtrustcommercialca [jdk]
- 識別名: 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
- エイリアス名: firmtrustnetworkingca [jdk]
- 識別名: 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
- エイリアス名: firmtrustpremiumca [jdk]
- 識別名: 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
- エイリアス名: firmtrustpremiumeccca [jdk]
- 識別名: 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 は、Cipher プロバイダーや Mac プロバイダーなどの他の JDK サービスタイプと一致する方法で KEM 実装を認証します。
JDK-8322971 (JDK Bug System) を参照してください。
-XshowSettings
ランチャーオプションの詳細なロケール出力が削減された
以前のリリースでは、-XshowSettings
ランチャーオプションは、使用可能なロケールの長いリストを出力し、他の設定が見えにくくなっていました。
OpenJDK 21.0.5 では、-XshowSettings
ランチャーオプションは、デフォルトで使用可能なロケールのリストを出力しなくなりました。使用可能なロケールに関連するすべての設定を表示する場合は、-XshowSettings:locale
オプションを使用できます。
JDK-8310201 (JDK Bug System) を参照してください。
java.security.debug
システムプロパティーの timestamp
と thread
オプションが追加される
OpenJDK 21.0.5 では、java.security.debug
プロパティーに次のオプションが追加され、指定された任意のコンポーネントに適用できるようになりました。
-
+timestamp
オプションは、各デバッグステートメントにタイムスタンプを出力します。 -
+thread
オプションは、各デバッグステートメントのスレッドと呼び出し元の情報を出力します。
たとえば、-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
トラストストアに 2 つの SSL.com TLS ルート証明書が含まれています。
- 証明書 1
- 名前: SSL.com
- エイリアス名: ssltlsrootecc2022
- 識別名: CN=SSL.com TLS ECC Root CA 2022、O=SSL Corporation、C=US
- 証明書 2
- 名前: SSL.com
- エイリアス名: ssltlsrootrsa2022
- 識別名: 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
プロパティーをゼロまたは負の値に設定して、最大ヘッダーフィールドサイズを無効にすることもできます。jdk.http.maxHeaderSize
プロパティーは、デフォルトで 393,216 バイト (つまり 384 KB) に設定されています。
JDK バグシステム参照 ID: JDK-8328286
ClassLoadingMXBean
および MemoryMXBean
API には、setVerbose()
メソッドと一致する isVerbose()
メソッドがあります。
ClassLoadingMXBean
API の setVerbose (boolean enabled)
メソッドは、次の動作を示します。
-
enabled
がtrue
の場合、setVerbose
メソッドは、Info
レベルで標準出力 (stdout) にclass+load*
ログ記録を設定します。 -
enabled
がfalse
の場合、setVerbose
メソッドは stdout でのclass+load*
ログを無効にします。
以前のリリースでは、ClassLoadingMXBean
API の isVerbose()
メソッドは、stdout だけでなく、あらゆるタイプのログ出力の Info
レベルで class+load
ロギングが有効になっているかどうかをチェックしていました。この状況では、java -Xlog
オプションを使用してファイルへのログ記録を有効にすると、setVerbose (false)
が呼び出されても isVerbose()
メソッドは true
を返し、予期せぬ動作が発生しました。MemoryMXBean
API の isVerbose()
メソッドでも同様に予期せぬ動作が発生しました。
OpenJDK 21.0.5 以降では、ClassLoadingMXBean.isVerbose()
メソッドと MemoryMXBean.isVerbose()
メソッドは次の動作を示します。
-
ClassLoadingMXBean::isVerbose()
は、class+load*
ロギングがInfo
レベル (またはそれ以上) で、具体的には標準出力 (stdout) で有効になっている場合にのみtrue
を返します。 -
MemoryMXBean::isVerbose()
は、stdout でガベージコレクターのロギングがInfo
レベル (またはそれ以上) で有効になっている場合にのみtrue
を返します。
JDK-8338139 (JDK Bug System) を参照してください。
改訂日時: 2024-10-31