1.11.10. カスタム SSL コンポーネント

elytron サブシステムで SSL/TLS を設定する場合は、以下のコンポーネントのカスタム実装を提供および使用できます。

  • key-store
  • key-manager
  • trust-manager
  • client-ssl-context
  • server-ssl-context
警告

Java Secure Socket Extension (JSSE) の詳しい知識がない場合は、trust-manager 以外のコンポーネントのカスタム実装を提供することは推奨されません。

重要

FIPS を使用する場合は、カスタムトラストマネージャーまたはキーマネージャーを使用できません。これは、FIPS では、セキュリティー上の理由から、これらのマネージャーを JDK に組み込む必要があるためです。同様に、X509 エビデンスを検証する SecurityRealm を実装して、同様の動作を実現できます。

Elytron コンポーネントのカスタム実装を作成する場合、それらは適切な機能と要件を提供する必要があります。機能と要件の詳細は、JBoss EAP『 セキュリティーアーキテクチャー 「機能および要件」セクションを参照してください。各コンポーネントの実装の詳細は、JDK ベンダーによって提供されます。

1.11.10.1. カスタムコンポーネントの Elytron への追加

以下の手順では、Elytron 内でカスタムコンポーネントを追加する方法について説明します。

  1. カスタムコンポーネントのプロバイダーが含まれる JAR をモジュールとして JBoss EAP に追加し、javax.api などの必要な依存関係を宣言します。

    module add --name=MODULE_NAME --resources=FACTORY_JAR --dependencies=javax.api,DEPENDENCY_LIST
    重要

    module 管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境では、モジュールを手作業で追加および削除する必要があります。詳細は、JBoss EAP『 設定ガイド』の「 カスタムモジュールの手動作成 」および 「カスタムモジュールの手動削除 」を参照してください

    テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

    テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲 」を参照してください。

  2. コンポーネントが elytron サブシステムに追加されると、java.util.ServiceLoader がプロバイダー検出に使用されます。または、provider-loader を定義してプロバイダーへの参照を指定することもできます。ローダーを作成する方法は 2 つあります。各コンポーネントには、1 つずつのみ実装する必要があります。

    • provider-loader を定義する際にプロバイダーを直接参照します。

      /subsystem=elytron/provider-loader=LOADER_NAME:add(class-names=[CLASS_NAME],module=MODULE_NAME)
    • META-INF/services/java.security.Provider にプロバイダーへの参照を含めます。この参照は、org.kohsuke.metainf-services@MetaInfServices アノテーションを使用する際に自動的に作成されます。この方法を使用する場合は、以下のように provider-loader からモジュールのみを参照する必要があります。

      /subsystem=elytron/provider-loader=LOADER_NAME:add(module=MODULE_NAME)
  3. 定義したプロバイダーを追加および参照するタイプに適切な要素を使用して、カスタムコンポーネントを Elytron の設定に追加します。

    /subsystem=elytron/COMPONENT_NAME=NEW_COMPONENT:add(providers=LOADER_NAME,...)

    たとえば、トラストマネージャーを定義するには、以下のコマンドにあるように trust-manager 要素が使用されます。

    例: カスタム信頼マネージャーの追加

    /subsystem=elytron/trust-manager=newTrustManager:add(algorithm=MyX509,providers=customProvider,key-store=sampleKeystore)

  4. 定義が完了すると、コンポーネントは他の要素から参照できるようになります。

関連情報