1.2.6. Elytron サブシステムを使用して管理インターフェースに対して双方向 SSL/TLS を有効化する

  1. クライアントキーストアを取得または生成します。

    $ keytool -genkeypair -alias client -keyalg RSA -keysize 1024 -validity 365 -keystore client.keystore.jks -dname "CN=client" -keypass secret -storepass secret
  2. クライアント証明書をエクスポートします。

    $ keytool -exportcert  -keystore client.keystore.jks -alias client -keypass secret -storepass secret -file /path/to/client.cer
  3. JBoss EAP では、管理インターフェースの双方向 SSL/TLS は、security コマンドまたは elytron サブシステムコマンドのいずれかを使用して有効にできます。

    1. セキュリティーコマンドの使用

      security enable-ssl-management コマンドを使用すると、管理インターフェースに双方向 SSL/TLS を有効にできます。

      注記

      以下の例では、信頼チェーンが存在しないので、証明書は検証されません。信頼された証明書を使用している場合、クライアントの証明書は問題なく検証できます。

      例: ウィザードの使用

      security enable-ssl-management --interactive
      
      Please provide required pieces of information to enable SSL:
      Key-store file name (default management.keystore): server.keystore.jks
      Password (blank generated): secret
      What is your first and last name? [Unknown]: localhost
      What is the name of your organizational unit? [Unknown]:
      What is the name of your organization? [Unknown]:
      What is the name of your City or Locality? [Unknown]:
      What is the name of your State or Province? [Unknown]:
      What is the two-letter country code for this unit? [Unknown]:
      Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct y/n [y]?
      Validity (in days, blank default): 365
      Alias (blank generated): localhost
      Enable SSL Mutual Authentication y/n (blank n): y
      Client certificate (path to pem file): /path/to/client.cer
      Validate certificate y/n (blank y): n
      Trust-store file name (management.truststore): server.truststore.jks
      Password (blank generated): secret
      
      SSL options:
      key store file: server.keystore.jks
      distinguished name: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
      password: secret
      validity: 365
      alias: localhost
      client certificate: /path/to/client.cer
      trust store file: server.trustore.jks
      trust store password: secret
      Server keystore file server.keystore.jks, certificate file server.pem and server.csr file will be generated in server configuration directory.
      Server truststore file server.trustore.jks will be generated in server configuration directory.
      Do you confirm y/n: y

      注記

      コマンドを実行すると、管理 CLI がサーバーを再読み込みし、そのサーバーへの再接続を試みます。

      双方向 SSL/TLS 認証を完了するには、サーバーの証明書をクライアントトラストストアにインポートし、クライアント証明書を表示するようにクライアントを設定する必要があります。

    2. Elytron サブシステムコマンドの使用:

      elytron サブシステムコマンドを使用して、管理インターフェースに双方向 SSL/TLS を有効にすることもできます。

      1. キーストアを取得または生成します。JBoss EAP で一方向 SSL/TLS を有効にするには、使用する予定のキーストア、トラストストア、および証明書を取得または生成する必要があります。キーストア、トラストストア、および証明書の一連のサンプルを生成するには、以下のコマンドを使用します。

        1. key-store を設定します。

          /subsystem=elytron/key-store=twoWayKS:add(path=server.keystore.jks,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=JKS)
          
          /subsystem=elytron/key-store=twoWayKS:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")
          
          /subsystem=elytron/key-store=twoWayKS:store()
          注記

          上記のコマンドは、relative-to を使用してキーストアファイルの場所を参照します。または、path のキーストアにフルパスを指定することで、relative-to を省略できます。

        2. サーバー証明書をエクスポートします。

          /subsystem=elytron/key-store=twoWayKS:export-certificate(alias=localhost,path=/path/to/server.cer,pem=true)
        3. サーバートラストストアの key-store を作成し、クライアント証明書をサーバートラストストアにインポートします。

          注記

          以下の例では、信頼チェーンが存在しないので、証明書は検証されません。信頼された証明書を使用している場合、クライアントの証明書は問題なく検証できます。

          /subsystem=elytron/key-store=twoWayTS:add(path=server.truststore.jks,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=JKS)
          
          /subsystem=elytron/key-store=twoWayTS:import-certificate(alias=client,path=/path/to/client.cer,credential-reference={clear-text=secret},trust-cacerts=true,validate=false)
          
          /subsystem=elytron/key-store=twoWayTS:store()
      2. サーバーキーストアおよびトラストストアの key-managertrust-manager、および server-ssl-context を設定します。

        /subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS,credential-reference={clear-text=secret})
        
        /subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS,algorithm="SunX509")
        
        /subsystem=elytron/server-ssl-context=twoWaySSC:add(key-manager=twoWayKM,protocols=["TLSv1.2"],trust-manager=twoWayTM,want-client-auth=true,need-client-auth=true)
        重要

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

        1. 管理インターフェースで HTTPS を有効にします。

          /core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=twoWaySSC)
          
          /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
        2. JBoss EAP インスタンスをリロードします。

          reload
          注記

          双方向 SSL/TLS 認証を完了するには、サーバーの証明書をクライアントトラストストアにインポートし、クライアント証明書を表示するようにクライアントを設定する必要があります。

        3. クライアント証明書を使用するようにクライアントを設定します。

          双方向 SSL / TLS 認証を完了するには、信頼されたクライアント証明書をサーバーに提示するようにクライアントを構成する必要があります。たとえば、ブラウザーを使用している場合は、信頼された証明書をブラウザーの信頼ストアにインポートする必要があります。

          これにより、サーバー管理への元の認証を変更せずに、双方向 SSL/TLS 認証を強制できます。

          元の認証方法を変更する場合は、JBoss EAP『 How to Configure Identity Management』の「 Configure Authentication with Certificates 」を参照してください。

これで、双方向 SSL/TLS が管理インターフェースに対して有効化されるようになります。

重要

security-realmssl-context両方 が定義されている場合、JBoss EAP は ssl-context によって提供される SSL / TLS 設定を使用します。

注記

disable-ssl-management コマンドを使用して、管理インターフェースの双方向 SSL/TLS を無効にできます。

security disable-ssl-management

このコマンドでは、Elytron リソースは削除されません。SSL 設定に ApplicationRealm レガシーセキュリティーレルムを使用するようにシステムを設定します。