Red Hat build of OpenJDK 17.0.12 のリリースノート
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Open Java Development Kit (OpenJDK) は、Java Platform Standard Edition (Java SE) のオープンソース実装です。Red Hat build of OpenJDK は、8u、11u、17u、21u の 4 つのバージョンで利用できます。
Red Hat build of OpenJDK 向けパッケージは、Red Hat Enterprise Linux および Microsoft Windows で利用でき、Red Hat Ecosystem Catalog の JDK および JRE として同梱されています。
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章 Red Hat build of OpenJDK のサポートポリシー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat は、Red Hat build of OpenJDK の一部のメジャーバージョンを製品でサポートします。一貫性を保つために、これらのバージョンは長期サポート (LTS) として指定されている Oracle JDK バージョンと同様のままとなります。
Red Hat build of OpenJDK のメジャーバージョンは、最初に導入された時点から少なくとも 6 年間サポートされます。詳細は、OpenJDK のライフサイクルおよびサポートポリシー を参照してください。
RHEL 6 のライフサイクルは 2020 年 11 月に終了します。このため、Red Hat build of OpenJDK は、サポート対象の設定として RHEL 6 をサポートしていません。
第2章 アップストリームの OpenJDK 17 との相違点 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux の OpenJDK には、Red Hat build of OpenJDK のアップストリームディストリビューションの構造上の変更が数多く含まれています。Microsoft Windows バージョンの Red Hat build of OpenJDK は、Red Hat Enterprise Linux の更新にできる限り従います。
以下は、Red Hat build of OpenJDK 17 における最も注目すべき変更のリストです。
- FIPS のサポート。Red Hat build of OpenJDK 17 は、RHEL が FIPS モードであるかどうかを自動的に検出し、Red Hat build of OpenJDK 17 がそのモードで動作するように自動的に設定します。この変更は、Microsoft Windows 向けの Red Hat build of OpenJDK ビルドには適用されません。
- 暗号化ポリシーのサポート。Red Hat build of OpenJDK 17 は、有効な暗号化アルゴリズムとキーサイズ制約のリストを RHEL システム設定から取得します。これらの設定コンポーネントは、トランスポート層セキュリティー (TLS) 暗号化プロトコル、証明書パス検証、および署名された JAR によって使用されます。さまざまなセキュリティープロファイルを設定して、安全性と互換性のバランスをとることができます。この変更は、Microsoft Windows 向けの Red Hat build of OpenJDK ビルドには適用されません。
-
RHEL の Red Hat build of OpenJDK は、アーカイブ形式のサポート用の
zlib、イメージのサポート用のlibjpeg-turbo、libpng、giflibなどのネイティブライブラリーと動的にリンクします。また、RHEL はフォントのレンダリングと管理のために、HarfbuzzおよびFreetypeに対して動的にリンクします。この変更は、Microsoft Windows 向けの Red Hat build of OpenJDK ビルドには適用されません。 -
src.zipファイルには、Red Hat build of OpenJDK に同梱されるすべての JAR ライブラリーのソースが含まれます。 - RHEL の Red Hat build of OpenJDK は、タイムゾーン情報のソースとして、システム全体のタイムゾーンデータファイルを使用します。
- RHEL の Red Hat build of OpenJDK は、システム全体の CA 証明書を使用します。
- Microsoft Windows の Red Hat build of OpenJDK には、RHEL で利用可能な最新のタイムゾーンデータが含まれています。
- Microsoft Windows の Red Hat build of OpenJDK は、RHEL から入手可能な最新の CA 証明書を使用します。
第3章 Red Hat build of OpenJDK の機能 リンクのコピーリンクがクリップボードにコピーされました!
最新の Red Hat build of OpenJDK 17 には、新機能が含まれている可能性があります。さらに、最新リリースは、以前の Red Hat build of OpenJDK 21 リリースに由来する機能を強化、非推奨、または削除する可能性があります。
Red Hat build of OpenJDK の機能強化
Red Hat build of OpenJDK 21 では、以前のリリースの Red Hat build of OpenJDK で作成された機能に拡張が行われました。
Debian Linux に必要なパッケージのリストを生成する jpackage ツールが修正
以前のリリースでは、Debian Linux プラットフォームでは、jpackage ツールが、パス内のシンボリックリンクを使用して、共有ライブラリーから必要なパッケージの不正確なリストを生成することができました。
Red Hat build of OpenJDK 17.0.13 ではこの問題が解決され、共有ライブラリーの欠落によるインストールの失敗を排除できます。
JDK-8295111 (JDK Bug System) を参照してください。
TLS_ECDH_* 暗号スイートはデフォルトで無効になっています。
TLS Elliptic-curve Diffie-Hellman (TLS_ECDH)暗号化スイートは、転送機密性を保持しないため、ほとんど使用されません。Red Hat build of OpenJDK 17.0.13 は、java.security 設定ファイルの jdk.tls.disabledAlgorithms セキュリティープロパティーに ECDH オプションを追加して、TLS_ECDH 暗号スイートを無効にします。TLS_ECDH 暗号化スイートの使用を試みると、Red Hat build of OpenJDK で SSLHandshakeException エラーが発生するようになりました。
TLS_ECDH 暗号スイートを引き続き使用する場合は、java.security 設定ファイルを変更するか、java.security.properties システムプロパティーを使用して、jdk.tls.disabledAlgorithms セキュリティープロパティーから ECDH を削除できます。
TLS_ECDH 暗号化スイートの継続には、独自のリスクがあります。
RC4 を使用する ECDH 暗号スイートは以前のリリースで無効になっていました。この変更は、TLS_ECDHE 暗号化スイートには影響しません。これはデフォルトで有効なままです。
JDK-8185862 (JDK Bug System) を参照してください。
2024 年 11 月 11 日に発行され、Entrust ルート CA にアンカーした後に発行された TLS サーバー証明書の要求
Google および Mozilla が最近発表されたことと同様の計画に従い、Red Hat build of OpenJDK 17.0.13 は、2024 年 11 月 11 日後に発行された TLS 証明書を信頼し、Entrust ルート認証局(CA)にアンカーします。この動作の変更には、Entrust によって管理される AffirmTrust としてブランド化された証明書が含まれます。
Red Hat build of 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
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 サーバー証明書の使用は自己責任を負います。
これらの制限は、Red Hat build of 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:8D:E5:8D:E5:76:16:C1:E6:E6:14:1A:2C:7D:8E:4C
- 証明書 2
- エイリアス名:entrustrootcaec1 [jdk]
- Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only", 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 - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only", 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
- Distinguished Name: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only", OU=See www.entrust.net/legal-terms, O="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
- 証明書 4
- エイリアス名:entrust2048ca [jdk]
- 識別名:CN=Entrust.net 認証局(2048)、OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. (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
- 証明書 4
- エイリアス名:affirmtrustcommercialca [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:8D:60:C9:6F:5F:A7
- 証明書 4
- エイリアス名:affirmtrustnetworkingca [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:CD:31:05:8B:0E:17:F3:F0B4:1B
- 証明書 4
- エイリアス名:affirmtrustpremiumca [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
- 証明書 4
- エイリアス名:affirmtrustpremiumeccca [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) を参照してください。
XshowSettings ランチャーオプションの 詳細なロケール出力を削減
以前のリリースでは、-XshowSettings launcher オプションは、利用可能なロケールの長いリストを出力し、他の設定を隠していました。
Red Hat build of OpenJDK 17.0.13 では、-XshowSettings launcher オプションはデフォルトで利用可能なロケールのリストを出力しなくなりました。利用可能なロケールに関連する設定をすべて表示する場合は、the -XshowSettings:locale オプションを使用できます。
JDK-8185862 (JDK Bug System) を参照してください。
ssl.com ルート証明書が追加される
Red Hat build of OpenJDK 17.0.13 では、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-8185862 (JDK Bug System) を参照してください。
java.security.debug システムプロパティーの追加の タイムスタンプ および スレッド オプション
Red Hat build of OpenJDK 17.0.13 は、指定されたコンポーネントに適用できる java.security.debug プロパティーに次のオプションを追加します。
-
+timestampオプションは、各 debug ステートメントが含まれるタイムスタンプを出力します。 -
+threadオプションは、デバッグステートメントごとにスレッドおよび呼び出し元情報を出力します。
たとえば、-Djava.security.debug=all+timestamp+thread を使用すると、タイムスタンプとスレッド情報の両方を持つすべてのコンポーネントのデバッグ情報が有効になります。または、-Djava.security.debug=properties+timestamp は、セキュリティープロパティーのデバッグ情報のみを有効にし、タイムスタンプが含まれます。Djava.security.debug=help を使用して、サポートされているコンポーネントおよびオプションの完全なリストを表示できます。
JDK-8185862 (JDK Bug System) を参照してください。
Java Abstract Window Toolkit (AWT)ロボット仕様の緩和
Red Hat build of OpenJDK 17.0.13 は、Java 17 仕様の最新のメンテナンスリリースに基づいています。このリリースでは、java.awt.Robot クラスの次の 3 つのメソッドの仕様が緩和されます。
-
mouseMove(int,int) -
getPixelColor(int,int) -
createScreenCapture(Rectangle)
この仕様の緩和により、デスクトップ環境でマウスポインターの移動や画面コンテンツのキャプチャーが許可されない場合に、これらのメソッドが失敗することが可能になります。
JDK-8185862 (JDK Bug System) を参照してください。
com.sun.jndi.ldap.object.trustSerialData システムプロパティーへの変更
LDAP プロバイダーの JDK 実装は、デフォルトで Java オブジェクトのデシリアライズをサポートしなくなりました。
Red Hat build of OpenJDK 17.0.13 では、デフォルトで com.sun.jndi.ldap.object.trustSerialData システムプロパティーが false に設定されています。このリリースでは、com.sun.jndi.ldap.object.trustSerialData プロパティーの範囲も増加し、javaRemoteLocation LDAP 属性からの RMI リモートオブジェクトの再構築も対応しています。
これらの変更により、Java オブジェクトの透過的なデシリアライズに明示的なオプトインが必要になりました。Red Hat build of OpenJDK 17.0.13 以降では、アプリケーションが LDAP 属性から Java オブジェクトと RMI スタブを再構築できるようにする場合は、com.sun.jndi.ldap.object.trustSerialData プロパティーを true に設定する必要があります。
JDK-8290367 (JDK Bug System) および JDK-8332643 (JDK Bug System)を参照してください。
HTTP クライアントの機能強化
Red Hat build of OpenJDK 17.0.13 は、サポートされているすべてのバージョンの HTTP プロトコルに対して、HTTP クライアントが JDK 内で受け入れる最大ヘッダーフィールドサイズを制限します。ヘッダーフィールドサイズは、圧縮されていないヘッダー名のサイズ、圧縮されていないヘッダー値のサイズ、および各フィールドセクション行に 32 バイトのオーバーヘッドとして計算されます。ピアがこの制限を超えるフィールドセクションを送信すると、java.net.ProtocolException が発生します。
Red Hat build of OpenJDK 17.0.13 では、ヘッダーフィールドの最大サイズをバイト単位で変更するために使用できる jdk.http.maxHeaderSize システムプロパティーが導入されています。または、jdk.http.maxHeaderSize プロパティーをゼロに設定するか、負の値を設定することで、最大ヘッダーフィールドサイズを無効にすることができます。jdk.http.maxHeaderSize プロパティーはデフォルトで 393,216 バイト(つまり 384KB)に設定されます。
JDK-8185862 (JDK Bug System) を参照してください。
ClassLoadingMXBean および MemoryMXBean API の set Verbose ()メソッドと合致する is Verbose () メソッドがあります
Verbose ()メソッドと合致する is Verbose ()
ClassLoadingMXBean API の setVerbose (boolean enabled) メソッドには次の動作が表示されます。
-
enabledがtrueの場合、setVerboseメソッドはInfoレベルの標準出力(stdout)のclass+load*ロギングを設定します。 -
falseの場合、setVerboseメソッドは stdout のclass+load*ロギングを無効にします。
以前のリリースでは、ClassLoadingMXBean API の isVerbose () メソッドは、stdout だけでなく、任意のタイプのログ出力で クラス+ロード ロギングが Info レベルで有効になっているかどうかをチェックします。この状況では、java -Xlog オプションを使用してファイルへのログインを有効にすると、set メソッドは Verbose (false) が呼び出されても isVerbose ()true を返し、これにより直観的な動作が発生します。MemoryMXBean API の isVerbose () メソッドには、同様のカウンター的動作も表示されます。
Red Hat build of OpenJDK 17.0.13 以降では、ClassLoadingMXBean.isVerbose ()メソッド と MemoryMXBean.isVerbose () メソッドに以下の動作が表示されます。
-
ClassLoadingMXBean::isVerbose ()は、特に標準出力(stdout)でクラス+load*ロギングがInfoレベル(以上)で有効になっている場合にのみtrueを返します。 -
MemoryMXBean::isVerbose ()は、stdout のInfoレベル(またはそれ以降)でガベッジコレクターのロギングが有効になっている場合にのみtrueを返します。
JDK-8185862 (JDK Bug System) を参照してください。
鍵カプセル化メカニズム API
Red Hat build of OpenJDK 17.0.13 では、主要なカプセル化メカニズム(KEM)用の javax.crypto API が導入されています。KEM は、公開鍵暗号を使用して対称鍵を保護するための暗号化手法です。KEM API は公開鍵暗号化の使用を容易にし、秘密やメッセージを処理する際のセキュリティーの向上に役立ちます。
JDK-8185862 (JDK Bug System) を参照してください。
Windows ビルドアーティファクトの命名規則の変更
このリリースでは、Windows Server プラットフォーム用の Red Hat build of OpenJDK 17 の一部として配布される一部のファイルの命名変更が導入されています。
これらのファイルの命名変更は、Red Hat が Red Hat build of OpenJDK 17 の JDK パッケージ、JRE パッケージ、および debuginfo パッケージ向けに Red Hat が提供する .zip アーカイブと .msi インストーラーの両方に影響します。
この変更の目的は、Red Hat が現在サポートしている OpenJDK のさまざまなバージョン間で一貫性のある一般的な命名規則を採用することです。つまり、Red Hat build of OpenJDK 17 は、Red Hat build of OpenJDK 21 にすでに採用されている命名規則に合わせています。
これらの変更は、Linux ポータブルビルドのファイルには影響しません。
以下のリストは、これらの命名変更が Red Hat build of OpenJDK 17 のファイルにどのように影響するかの例を示しています。
JDK パッケージの MSI インストーラー
Red Hat build of OpenJDK 17.0.12 以前の古い命名形式:
java-17-openjdk-<version>.<build>.win.x86_64.msiRed Hat build of OpenJDK 17.0.13 以降の新しい命名形式:
java-17-openjdk-<version>.<build>.win.jdk.x86_64.msi
JDK パッケージの
.zipアーカイブRed Hat build of OpenJDK 17.0.12 以前の古い命名形式:
java-17-openjdk-<version>.<build>.win.x86_64.zipRed Hat build of OpenJDK 17.0.13 以降の新しい命名形式:
java-17-openjdk-<version>.<build>.win.jdk.x86_64.zip
JRE パッケージの MSI インストーラー
Red Hat build of OpenJDK 17.0.12 以前の古い命名形式:
java-17-openjdk-<version>.<build>.jre.win.x86_64.msiRed Hat build of OpenJDK 17.0.13 以降の新しい命名形式:
java-17-openjdk-<version>.<build>.win.jre.x86_64.msi
JRE パッケージの
.zipアーカイブRed Hat build of OpenJDK 17.0.12 以前の古い命名形式:
java-17-openjdk-<version>.<build>.jre.win.x86_64.zipRed Hat build of OpenJDK 17.0.13 以降の新しい命名形式:
java-17-openjdk-<version>.<build>.win.jre.x86_64.zip
debuginfoパッケージの.zipアーカイブRed Hat build of OpenJDK 17.0.12 以前の古い命名形式:
java-17-openjdk-<version>.<build>.win.x86_64.debuginfo.zipRed Hat build of OpenJDK 17.0.13 以降の新しい命名形式:
java-17-openjdk-<version>.<build>.win.debuginfo.x86_64.zip
第4章 このリリースに関連するアドバイザリー リンクのコピーリンクがクリップボードにコピーされました!
このリリースに含まれるバグ修正と CVE 修正を文書化するために、次のアドバイザリーが発行されます。
改訂日時: 2024-10-19