5.9. 管理インターフェースと CLI での双方向 SSL の使用
クライアント認証 とも呼ばれる 2 方向 SSL 認証は、SSL 証明書を使用してクライアントとサーバーの両方を認証 します。そのため、サーバーの伝えるアイデンティティーだけでなく、クライアントの伝えるアイデンティティーも信頼できます。
このトピックでは、以下の規則を使用します。
- HOST1
- JBoss サーバーのホスト名。例:
jboss.redhat.com
- HOST2
- クライアントに適した名前。例:
myclient
これは必ずしも実際のホスト名ではないことに注意してください。 - CA_HOST1
- HOST1 証明書に使用する DN(識別名)です。たとえば、
cn=jboss,dc=redhat,dc=com
です。 - CA_HOST2
- HOST2 証明書に使用する DN(識別名)です。たとえば、
cn=myclient,dc=redhat,dc=com
です。
前提条件
- パスワード vault を使用してキーストアとトラストストアパスワードを保存する場合は(推奨)、パスワード vault はすでに作成されている必要があります。「パスワード vault システム」 を参照してください。
手順5.3
- ストアを生成します。
keytool -genkeypair -alias HOST1_alias -keyalg RSA -keysize 1024 -validity 365 -keystore host1.keystore.jks -dname "CA_HOST1" -keypass secret -storepass secret
keytool -genkeypair -alias HOST2_alias -keyalg RSA -keysize 1024 -validity 365 -keystore host2.keystore.jks -dname "CA_HOST2" -keypass secret -storepass secret
- 証明書をエクスポートします。
keytool -exportcert -keystore HOST1.keystore.jks -alias HOST1_alias -keypass secret -storepass secret -file HOST1.cer
keytool -exportcert -keystore HOST2.keystore.jks -alias HOST2_alias -keypass secret -storepass secret -file HOST2.cer
- 逆のトラストストアに証明書をインポートします。
keytool -importcert -keystore HOST1.truststore.jks -storepass secret -alias HOST2_alias -trustcacerts -file HOST2.cer
keytool -importcert -keystore HOST2.truststore.jks -storepass secret -alias HOST1_alias -trustcacerts -file HOST1.cer
- インストール(
host.xml
またはstandalone.xml
)の設定で CertificateRealm を定義し、インターフェースを指定します。これは、設定ファイルを手動で編集するか(推奨されません)、または以下のコマンドを使用して実行できます。/core-service=management/security-realm=CertificateRealm:add()
/core-service=management/security-realm=CertificateRealm/server-identity=ssl:add(keystore-path=/path/to/HOST1.keystore.jks,keystore-password=secret, alias=HOST1_alias)
/core-service=management/security-realm=CertificateRealm/authentication=truststore:add(keystore-path=/path/to/HOST1.truststore.jks,keystore-password=secret)
重要提供されるコマンドはスタンドアロンモードにのみ適用されます。ドメインモードの場合は、各コマンドの前に /host=master を追加します。 - native-interface の
security-realm
を新しい証明書レルムに変更します。/host=master/core-service=management/management-interface=native-interface:write-attribute(name=security-realm,value=CertificateRealm)
EAP_HOME/bin/jboss-cli.xml
を設定ファイルとして使用する CLI の SSL 設定を追加します。パスワード vault を使用してキーストアおよびトラストストアパスワードを保存するか(推奨)、プレーンテキストに保存します。- キーストアおよびトラストストアパスワードをパスワード vault に保存するには、以下を実行します。
EAP_HOME/bin/jboss-cli.xml
を編集し、SSL 設定を追加します(変数に適切な値を使用)。また、vault 設定を追加して、各値を vault のものに置き換えます。<ssl> <vault> <vault-option name="KEYSTORE_URL" value="path-to/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5WNXs8oEbrs"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="12345678"/> <vault-option name="ITERATION_COUNT" value="50"/> <vault-option name="ENC_FILE_DIR" value="path-to/jboss-eap/vault/"/> </vault> <alias>$HOST2alias</alias> <key-store>/path/to/HOST2.keystore.jks</key-store> <key-store-password>VAULT::VB::cli_pass::1</key-store-password> <key-password>VAULT::VB::cli_pass::1</key-password> <trust-store>/path/to/HOST2.truststore.jks</trust-store> <trust-store-password>VAULT::VB::cli_pass::1</trust-store-password> <modify-trust-store>true</modify-trust-store> </ssl>
- キーストアおよびトラストストアパスワードをプレーンテキストに保存するには、以下を行います。
EAP_HOME/bin/jboss-cli.xml
を編集し、SSL 設定を追加します(変数に適切な値を使用します)。<ssl> <alias>$HOST2alias</alias> <key-store>/path/to/HOST2.keystore.jks</key-store> <key-store-password>secret</key-store-password> <trust-store>/path/to/HOST2.truststore.jks</trust-store> <trust-store-password>secret</trust-store-password> <modify-trust-store>true</modify-trust-store> </ssl>