第4章 Red Hat build of OpenJDK の機能


最新の Red Hat build of OpenJDK 17 には、新機能が含まれている可能性があります。さらに、最新リリースは、以前の Red Hat build of OpenJDK 17 リリースに由来する機能を強化、非推奨、または削除する可能性があります。

注記

その他すべての変更点やセキュリティー修正は、OpenJDK 17.0.12 Released を参照してください。

Red Hat build of OpenJDK の機能強化

Red Hat build of OpenJDK 17 では、以前のリリースの Red Hat build of OpenJDK で作成された機能に拡張が行われました。

POSTのみの OCSP リクエストのフォールバックオプション

Red Hat build of OpenJDK 17 で導入された JDK-8175903 に、Online Certificate Status Protocol (OCSP)リクエストに HTTP GET メソッドを使用するためのサポートが追加されました。この機能は、小さなリクエストに対して無条件で有効化されました。

Internet Engineering Task Force (IETF) RFC 5019 および RFC 6960 は、HTTP GET 要求の使用を明示的に許可し、推奨します。ただし、一部の OCSP レスポンダーは、これらのタイプのリクエストでは適切に機能しません。

Red Hat build of OpenJDK 17.0.12 では、JDK システムプロパティー com.sun.security.ocsp.useget が導入されています。デフォルトでは、このプロパティーは true に設定され、小さなリクエストに GET リクエストを使用する現在の動作が保持されます。このプロパティーを false に設定すると、サイズに関係なく HTTP POST リクエストのみが使用されます。

注記

POSTのみの OCSP リクエストのこのフォールバックオプションは標準以外の機能です。これは、OCSP レスポンダーで HTTP GET 要求を使用して問題が発生しなくなった場合に、今後のリリースで削除される可能性があります。

JDK-8307990 (JDK Bug System) を参照してください。

TLS 1.3 は、デフォルトでは無効になっています。

OpenJDK 9 では、Datagram Transport Layer Security (DTLS)プロトコルのバージョン 1.0 とバージョン 1.2 (JEP-219)の両方のサポートが追加されました。TLS 1.1 に基づく DTLSv1.0 は、このプロトコルは弱いと見なされ、最新の標準によって安全ではないと見なされるため、使用は推奨されなくなりました。Red Hat build of OpenJDK 17.0.12 では、DTLSv1.0 を使用しようとすると、JDK はデフォルトで SSLHandshakeException を出力します。

DTLSv1.0 を引き続き使用する場合は、java.security 設定ファイルを変更するか、java.security.properties システムプロパティーを使用すると、jdk.tls.disabledAlgorithms システム プロパティーから DTLSv1. 0 を削除できます。

注記

DTLSv1.0 の使用は推奨されず、ユーザー自身のリスクになります。

JDK-8307990 (JDK Bug System) を参照してください。

内部 JDK バイナリーの $ORIGIN ランタイム検索パスの RUNPATH よりも推奨される RPATH

JDK のネイティブ実行可能ファイルおよびライブラリーは、埋め込みランタイム検索パス(rpath)を使用して、必要な内部 JDK ネイティブライブラリーを見つけます。Linux システムでは、バイナリーは DT_RPATH または DT_RUNPATH を使用してこれらの検索パスを指定できます。

  • DT_RPATH を使用してバイナリーが検索パスを指定する場合、これらのパスは LD_LIBRARY_PATH 環境変数に指定されたパスの に検索されます。
  • バイナリーが DT_RUNPATH を使用して検索パスを指定する場合、これらのパスは LD_LIBRARY_PATH で指定されているパスの にのみ検索されます。つまり、DT_RUNPATH を使用すると、LD_LIBRARY_PATH で指定されている同じ名前のライブラリーで JDK 内部ライブラリーを上書きでき、セキュリティーの観点からは望ましくないことになります。

以前のリリースでは、使用されるランタイム検索パスのタイプは、動的リンカーのデフォルトの検索パスに基づいていました。Red Hat build of OpenJDK 17.0.12 では、DT_RPATH が使用されていることを確認するために、DT_RPATH オプションが明示的にリンカーに渡されます。

JDK-8307990 (JDK Bug System) を参照してください。

製品スイッチとして利用できる TrimNativeHeapInterval オプション

Red Hat build of OpenJDK 21.0.3 では、公式の製品スイッチとして -XX:TrimNativeHeapInterval=ms オプションが提供されます。この機能強化により、JVM はサポートされているプラットフォーム上で指定された間隔 (ミリ秒単位) でネイティブヒープをトリミングできるようになります。現在、この機能強化がサポートされているプラットフォームは、glibc を搭載した Linux のみです。

TrimNativeHeapInterval=0 を設定するとトリミングを無効にすることができます。トリミング機能はデフォルトで無効になっています。

JDK-8325496 (JDK Bug System) を参照してください。

-XshowSettings ランチャーオプションには セキュリティー カテゴリーが含まれています

Red Hat build of OpenJDK 17.0.12 では、-XshowSettings launcher オプションにセキュリティーカテゴリーが含まれており、次の引数を渡すことができます。

引数詳細

-XshowSettings:security

または

-XshowSettings:security:all

すべてのセキュリティー設定を表示し、続行します。

-XshowSettings:security:properties

セキュリティープロパティーを表示し、続行します。

-XshowSettings:security:providers

静的なセキュリティープロバイダーの設定を表示し、続行します。

-XshowSettings:security:tls

TLS 関連のセキュリティー設定を表示し、続行します。

サードパーティーのセキュリティープロバイダーがアプリケーションクラスパスまたはモジュールパスに含まれ、java.security ファイルで設定されている場合、出力にはこれらのサードパーティーのセキュリティープロバイダーが含まれます。

JDK-8307990 (JDK Bug System) を参照してください。

GlobalSign R46 および E46 ルート証明書が追加されました

Red Hat build of OpenJDK 17.0.12 では、cacerts トラストストアに 2 つの GlobalSign TLS ルート証明書が含まれています。

証明書 1
  • 名前:GlobalSign
  • エイリアス名:globalsignr46
  • 識別名:CN=GlobalSign Root R46, O=GlobalSign nv-sa, C=BE
証明書 2
  • 名前:GlobalSign
  • エイリアス名:globalsigne46
  • 識別名:CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE

JDK-8307990 (JDK Bug System) を参照してください。

コードルートスキャン フェーズ中の不均衡な反復が原因で、ガベッジコレクションの一時停止期間が長い問題が修正されました。

ガベッジコレクションの コードルートスキャン フェーズは、コンパイルされたコード内の Java オブジェクトへの参照を見つけます。このプロセスの速度を上げるために、キャッシュは、Java ヒープへの参照が含まれるコンパイルコードの各リージョン内で維持されます。

参照のセットが小さいと仮定すると、以前のリリースはリージョンごとに単一のスレッドを使用してこれらの参照を繰り返し処理しました。このシングルスレッドアプローチでは、スケーラビリティーのボトルネックが発生し、特定のリージョンに多数の参照が含まれる場合にパフォーマンスが低下する可能性があります。

Red Hat build of OpenJDK 17.0.12 では、複数のスレッドが使用され、スケーラビリティーのボトルネックを取り除くのに役立ちます。

JDK-8307990 (JDK Bug System) を参照してください。

Windows での AWT ヘッドレスモード検出の動作の変更

以前のリリースでは、java.awt.headless システムプロパティーが true に設定されていない限り、Windows Server プラットフォームで java.awt.GraphicsEnvironment.isHeadless () への呼び出しが false を返していました。

Red Hat build of OpenJDK 17.0.12 以降では、java.awt.headless プロパティーが明示的に false に設定され、実行時に現在のシステムで有効なモニターが検出されない場合、Windows Server プラットフォームでは java.awt.GraphicsEnvironment.isHeadless () への呼び出しが true を返します。たとえば、セッションがサービスまたは PowerShell リモーティングによって開始された場合など、有効なモニターが検出されない可能性があります。

この動作のこの変更は、以前は先頭的なコンテキストで実行されると予想されていたこれらの条件で実行されているアプリケーションが、Abstract Window Toolkit (AWT)操作によって予期しない HeadlessException エラーが発生する可能性があることを意味します。

java.awt.headless プロパティーを false に設定すると、古い動作を元に戻すことができます。ただし、アプリケーションがヘッドモードで実行されていて、有効な表示が利用できない場合、これらのアプリケーションは予期しない問題が発生し続ける可能性があります。

JDK-8307990 (JDK Bug System) を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.