2.3. Elytron でのドメインコントローラーへの SSL または TLS の設定
マスタードメインコントローラーとホストコントローラー間で相互に通信する際に Secure Sockets Layer (SSL) または Transport Layer Security (TLS) を使用するようにマネージドドメインの JBoss EAP インスタンスを設定できます。
マネージドドメインの JBoss EAP インスタンス間で使用する SSL または TLS を設定する場合は、対話に応じて各インスタンスにクライアントまたはサーバーのロールを設定できます。これには、すべてのホストコントローラーとドメインコントローラーが含まれます。最適な結果を得るには、エンドポイント間で双方向の SSL または TLS を設定してください。
前提条件
必要なすべての証明書とキーストアを生成して設定しておく。管理インターフェイスで双方向 SSL/TLS を有効にするには、セキュリティーコマンドを使用した双方向 SSL/TLS の有効化 または Elytron サブシステムコマンドを使用した双方向 SSL/TLS の有効化 のいずれかを参照してください。
注記エンドポイント間で双方向 SSL または TLS を設定するには、マスタードメインコントローラーおよび各ホストコントローラーの証明書およびキーストアを生成し、設定する必要があります。
さらに、マスタードメインコントローラーの証明書を各ホストコントローラーのキーストアにインポートする必要があります。さらに、各ホストコントローラーの証明書をマスタードメインコントローラーの鍵ストアにインポートしてください。
手順
マスタードメインコントローラーでユーザーを追加します。デフォルトのファイルベースのユーザーおよびグループ認証メカニズムを使用している場合は、
EAP_HOME/bin/add-user.sh
スクリプトを実行してください。プロンプトが表示されたら、ユーザー名、パスワード、およびその他の設定を追加します。注記管理ユーザーのレルムのデフォルト名は
ManagementRealm
です。Add-user
ユーティリティーでレルム名の入力を求められた場合には、別のレルムに切り替えていない限り、デフォルトのレルム名を使用する必要があります。注記スレーブコントローラーがユーザーを認証するためには、マスタードメインコントローラーにユーザーを追加する必要があります。
注記サーバーは、メモリー内のプロパティーファイルの内容をキャッシュします。ただし、サーバーは認証リクエストごとにプロパティーファイルの変更時間を確認し、時間が更新された場合にリロードします。このように、
add-user
ユーティリティーによる変更は、実行中のサーバーに直ちに適用されます。マスタードメインコントローラーを、SSL または TLS を使用するように設定します。以下の例では、サーバーキーストアとトラストストア向けのドメインコントローラーの
key-store
、key-manager
、trust-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,credential-reference={clear-text=secret}) /host=master/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS) /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)
重要Elytron サブシステムはデフォルトで
KeyManagerFactory.getDefaultAlgorithm()
およびTrustManagerFactory.getDefaultAlgorithm()
を使用してアルゴリズムを決定するため、Red Hat は前のコマンドでアルゴリズム属性を指定しませんでした。ただし、アルゴリズム属性は指定できます。アルゴリズム属性を指定するには、使用している JDK によるキーマネージャーアルゴリズムを知る必要があります。たとえば、SunJSSE を使用する JDK は、PKIX
およびSunX509
アルゴリズムを提供します。前のコマンドでは、
SunX509
をキーマネージャーアルゴリズム属性として指定し、PKIX
をトラストマネージャーアルゴリズム属性として指定できます。また、使用する HTTPS プロトコルを決定する必要もあります。この手順の例では、
TLSv1.2
を使用しています。cipher-suite-filter
を使用して暗号スイートを指定し、use-cipher-suites-order
引数を使用してサーバーの暗号スイートの順序を優先できます。use-cipher-suites-order
属性はデフォルトでtrue
に設定されます。これは、レガシーsecurity
サブシステムの動作とは異なります。その動作は、デフォルトで、クライアント暗号スイートの順序を許可します。各スレーブホストコントローラーに認証コンテキストとドメインコントローラーの場所を設定します。以下の設定例では、
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)
各スレーブホストコントローラーが SSL/TLS を使用するように設定します。以下のコマンドでは、サーバーのキーストアとトラストストアに対して、スレーブホストコントローラーの
key-store
、key-manager
、trust-manager
、client-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,credential-reference={clear-text=secret}) /host=slave1/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS) /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}])
重要Elytron サブシステムはデフォルトで
KeyManagerFactory.getDefaultAlgorithm()
およびTrustManagerFactory.getDefaultAlgorithm()
を使用してアルゴリズムを決定するため、Red Hat は前のコマンドでアルゴリズム属性を指定しませんでした。ただし、アルゴリズム属性は指定できます。アルゴリズム属性を指定するには、使用している JDK によるキーマネージャーアルゴリズムを知る必要があります。たとえば、SunJSSE を使用する JDK は、PKIX
およびSunX509
アルゴリズムを提供します。前のコマンドでは、
SunX509
をキーマネージャーアルゴリズム属性として指定し、PKIX
をトラストマネージャーアルゴリズム属性として指定できます。また、使用する HTTPS プロトコルを決定する必要もあります。この手順の例では、
TLSv1.2
を使用しています。cipher-suite-filter
を使用して暗号スイートを指定し、use-cipher-suites-order
引数を使用してサーバーの暗号スイートの順序を優先できます。use-cipher-suites-order
属性はデフォルトでtrue
に設定されます。これは、レガシーsecurity
サブシステムの動作とは異なります。その動作は、デフォルトで、クライアント暗号スイートの順序を許可します。- 管理対象ドメインのすべての JBoss EAP ホストをリロードします。
関連情報
- マネージドドメイン操作モードの概念および一般的な設定の詳細は、JBoss EAP設定ガイド のドメイン管理 セクションを参照してください。
- ユーザーの管理については、JBoss EAPConfiguration Guideの Management Users の項を参照してください。