5.7. HTTPS の管理コンソールの設定

HTTPS のみを使用して通信用に JBoss EAP 管理コンソールを設定するとセキュリティーが向上されます。クライアント (Web ブラウザー) と管理コンソール間のネットワークトラフィックはすべて暗号化されるため、中間者攻撃 (man-in-the-middle attack) などのセキュリティー攻撃のリスクが軽減されます。JBoss EAP インスタンスを管理するユーザーは、非特権ユーザーよりもそのインスタンスに対する権限を多く持ちます。HTTPS を使用すると、そのインスタンスの整合性および可用性を保護できます。
この手順では、JBoss EAP スタンドアロンインスタンスまたはドメインとの暗号化されていない通信は無効になっています。このような通信で使用されるパスワードは、JBoss EAP の vault 機能を使用して暗号化され格納されます。また、設定ファイルで使用されるパスワードはマスクされます。
この手順は、standalone および domain モード設定の両方に適用されます。domain モードでは、/host=master のように、ホストの名前を管理 CLI コマンドの前に追加します。

手順5.2

  1. キーストアを作成し、管理コンソールをセキュアにします。

    注記

    管理コンソールは JCEKS 形式のキーストアと互換性がないため、このキーストアは JKS 形式でなければなりません。
    ターミナルエミュレーターで以下のコマンドを入力します。aliaskeypasskeystorestorepass、および dname パラメーターは、例の値を指定する値に置き換えます。
    validity パラメーターは鍵の有効期間を日数で指定します。値 730 は 2 年間になります。
    keytool -genkeypair -alias appserver -storetype jks -keyalg RSA -keysize 2048 -keypass password1 -keystore EAP_HOME/standalone/configuration/identity.jks -storepass password1 -dname "CN=appserver,OU=Sales,O=Systems Inc,L=Raleigh,ST=NC,C=US" -validity 730 -v
  2. 管理コンソールが HTTPS へバインドすることを確認します。

    • スタンドアロンモード

      management-https を追加し、management-http を削除して、管理コンソールがインターフェースに対する HTTPS へバインドするようにします。
      JBoss EAP インスタンスが実行されていることを確認した後、以下の管理 CLI コマンドを入力します。
      /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
      /core-service=management/management-interface=http-interface:undefine-attribute(name=socket-binding)
      これらのコマンド実行後、以下のような出力が表示されるはずです。
      {"outcome" => "success"}

      注記

      この時点で、JBoss EAP のログに以下のようなエラーメッセージが表示されることがありますが、この時点では SSL の設定が完了していないため表示されます。
      JBAS015103: A secure port has been specified for the HTTP interface but no SSL configuration in the realm.
    • ドメインモード

      secure-port を追加し、ポート設定を削除して、management-interface セクション内でソケット要素を変更します。
      JBoss EAP インスタンスが実行されていることを確認した後、以下の管理 CLI コマンドを入力します。
      /host=master/core-service=management/management-interface=http-interface:write-attribute(name=secure-port,value=9443)
      /host=master/core-service=management/management-interface=http-interface:undefine-attribute(name=port)

      注記

      この時点で、JBoss EAP のログに以下のようなエラーメッセージが表示されることがありますが、この時点では SSL の設定が完了していないため表示されます。
      JBAS015103: A secure port has been specified for the HTTP interface but no SSL configuration in the realm.
  3. 任意設定: カスタム socket-binding グループ

    カスタム socket-binding グループを使用している場合は、management-https バインディングが定義されているようにしてください (このバインディングはデフォルトで存在し、ポート 9443 へバインドされます)。マスター設定ファイル (例: standalone.xml) が以下のとおりになるよう編集します。
     <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
            <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
            <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
            <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
  4. セキュリティーレルムを新たに作成します。

    以下のコマンドを実行し、ManagementRealmHTTPS という名前の新しいセキュリティーレルムを作成します。
    /host=master/core-service=management/security-realm=ManagementRealmHTTPS/:add
    /host=master/core-service=management/security-realm=ManagementRealmHTTPS/authentication=properties/:add(path=ManagementUsers.properties, relative-to=jboss.domain.config.dir)
  5. 新しいセキュリティーを使用するよう管理インターフェースを設定します。

    以下のコマンドを入力します。
    /host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ManagementRealmHTTPS)
  6. キーストアを使用するよう管理コンソールを設定します。

    以下の管理 CLI コマンドを入力します。filepassword および alias パラメーターの値は、「1. キーストアを作成し、管理コンソールをセキュアにします。」の値を使用する必要があります。
    /core-service=management/security-realm=ManagementRealmHTTPS/server-identity=ssl:add(keystore-path=identity.jks,keystore-relative-to=jboss.server.config.dir, keystore-password=password1, alias=appserver)
    このコマンド実行後、以下のような出力が表示されるはずです。
    {
        "outcome" => "success",
        "response-headers" => {
            "operation-requires-reload" => true,
            "process-state" => "reload-required"
        }
    }
  7. JBoss EAP サーバーを再起動します。

    サーバーを再起動すると、以下がログに記録されるはずです (起動したサービスの数を表すテキストの直前)。管理コンソールがポート 9443 でリッスンします。これは手順が適切に実行されたことを示します。
    14:53:14,720 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015962: Http management interface listening on https://127.0.0.1:9443/management
    14:53:14,721 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015952: Admin console listening on https://127.0.0.1:9443

注記

セキュリティー上の理由により、キーストアのパスワードをマスクすることが推奨されます。マスクする方法の詳細は「パスワード valut システム」を参照してください。