1.10.3. Elytron を使用したドメインコントローラーとホストコントローラー間の SSL/TLS の設定

重要

管理対象ドメインの JBoss EAP インスタンス間で使用する SSL/TLS を設定する場合は、対話に応じて各インスタンスにクライアントまたはサーバーのロールを設定できます。これには、すべてのホストコントローラーとドメインコントローラーが含まれます。そのため、エンドポイント間に双方向 SSL/TLS を設定することが推奨されます。

マスタードメインコントローラーとホストコントローラー間で相互に通信する際に SSL / TLS を使用するように管理対象ドメインの JBoss EAP インスタンスを設定できます。Elytron を使用する場合は、以下の手順を使用します。

  1. 必要なすべての証明書およびキーストアを生成して設定します。

    エンドポイント間で双方向 SSL/TLS を設定するには、マスタードメインコントローラーおよび各ホストコントローラーの証明書およびキーストアを生成し、設定する必要があります。マスタードメインコントローラーの証明書を各ホストコントローラーのキーストアにインポートし、各ホストコントローラーの証明書をマスタードメインコントローラーのキーストアにインポートする必要があります。このプロセスの詳細は、「Elytron サブシステムを使用した管理インターフェースの方向 SSL/TLS の有効化 」を参照してください。

  2. マスタードメインコントローラーでユーザーを追加します。

    スレーブコントローラーが認証に使用するには、マスタードメインコントローラーにユーザーを追加する必要があります。デフォルトのファイルベースユーザーおよびグループ認証メカニズムを使用している場合は、EAP_HOME/bin/adduser.sh を実行することで実行できます。プロンプトが表示されたら、ユーザー名、パスワード、およびその他の設定を追加します。

    add-user ユーティリティーを使用すると、ManagementRealm のユーザーと、ApplicationRealm のユーザーの両方を管理できます。

    注記

    サーバーは、メモリー内のプロパティーファイルの内容をキャッシュします。ただし、サーバーは認証リクエストごとにプロパティーファイルの変更時間を確認し、時間が更新された場合にリロードします。つまり、add-user ユーティリティーによるすべての変更が稼働中のサーバーに即座に適用されることになります。

    スレーブコントローラーは、HTTP インターフェースを使用した認証を試行します。HTTP インターフェースが ManagementRealm Elytron セキュリティーレルムで保護されている場合は、スレーブコントローラーが使用する ManagementRealm にユーザーを追加する必要があります。

    注記

    管理ユーザーのレルムのデフォルト名は ManagementRealm です。add-user ユーティリティーがレルム名の入力を要求したときに、別のレルムに切り替えていない限りデフォルトのものを許可します。

    以下の例では、パスワード password1! が設定されたユーザー slaveManagementRealm に追加済みであることを前提としています。

  3. マスタードメインコントローラーを、SSL/TLS を使用するように設定します。

    以下のコマンドは、ドメインコントローラーの key-storekey-managertrust-manager、および server-ssl-context をサーバーキーストアとトラストストアに設定します。

    /host=master/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/server.keystore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=master/subsystem=elytron/key-store=twoWayTS:add(path=/path/to/server.truststore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=master/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS,algorithm="SunX509",credential-reference={clear-text=secret})
    
    /host=master/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS,algorithm="SunX509")
    
    /host=master/subsystem=elytron/server-ssl-context=twoWaySSC:add(key-manager=twoWayKM,protocols=["TLSv1.2"],trust-manager=twoWayTM,want-client-auth=true,need-client-auth=true)
    
    /host=master/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=twoWaySSC)
    重要

    使用している JDK によるキーマネージャーアルゴリズムを知る必要があります。たとえば、SunJSSE を使用する JDK は、PKIX および SunX509 アルゴリズムを提供します。また、使用する HTTPS プロトコルを決定する必要もあります。上記のコマンド例は TLSv1.2 を使用します。cipher-suite-filter 引数を使用して、許可される暗号スイートを指定でき、use-cipher-suites-order 引用して、サーバーの暗号スイートの順序を許可します。use-cipher-suites-order 属性はデフォルトで true に設定されます。これは、レガシー security サブシステムの動作とは異なります。その動作は、デフォルトで、クライアント暗号スイートの順序を許可します。

  4. 各スレーブホストコントローラーに認証コンテキストとドメインコントローラーの場所を設定します。

    以下の設定例は、ドメインコントローラーが localhost に存在することを前提としています。ご利用の環境で正しい管理ユーザー、パスワード、およびドメインコントローラーの場所を指定するようにしてください。

    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:add()
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:add()
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=sasl-mechanism-selector,value=DIGEST-MD5)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=authentication-name,value=slave)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=realm,value=ManagementRealm)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=credential-reference,value={clear-text=password1!})
    
    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:write-attribute(name=match-rules,value=[{match-host=localhost,authentication-configuration=slaveHostSSLConfiguration}]
    
    /host=slave1:write-remote-domain-controller(host=localhost,port=9990,protocol=remote,authentication-context=slaveHostSSLContext)
  5. 各スレーブホストコントローラーが SSL/TLS を使用するように設定します。

    以下のコマンドは、サーバーキーストアおよびトラストストアのスレーブホストコントローラーのkey-storekey-managertrust-managerclient-ssl-context、並びに authentication-context を設定します。

    以下の設定例は、ドメインコントローラーが localhost に存在することを前提としています。環境に適したドメインコントローラーの場所を指定するようにしてください。

    /host=slave1/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=slave1/subsystem=elytron/key-store=twoWayTS:add(path=/path/to/client.truststore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=slave1/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS,algorithm="SunX509",credential-reference={clear-text=secret})
    
    /host=slave1/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS,algorithm="SunX509")
    
    /host=slave1/subsystem=elytron/client-ssl-context=twoWayCSC:add(key-manager=twoWayKM,protocols=["TLSv1.2"],trust-manager=twoWayTM)
    
    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:write-attribute(name=match-rules,value=[{match-host=localhost,authentication-configuration=slaveHostSSLConfiguration,ssl-context=twoWayCSC}])
  6. 管理対象ドメインのすべての JBoss EAP ホストをリロードします。