第1章 管理インターフェイスとアプリケーションの一方向 SSL/TLS の有効化


SSL/TLS、または Transport Layer Security (TLS) は、ネットワークを介して通信する 2 つのエンティティー間のデータ転送を保護するために使用される証明書ベースのセキュリティープロトコルです。

JBoss EAP 管理インターフェイスと JBoss EAP にデプロイされたアプリケーションの両方の一方向 SSL/TLS を有効にできます。詳細は、次の手順を参照してください。

1.1. 管理インターフェイスの一方向 SSL/TLS の有効化

管理インターフェイスの一方向 SSL/TLS を有効にして、JBoss EAP 管理インターフェイスとインターフェイスに接続するクライアントの通信が保護されるようにします。

以下の手順を使用して、管理インターフェイスの一方向 SSL/TLS を有効にできます。

さらに、security コマンドを使用した管理インターフェイスの SSL/TLS の無効化 の手順を使用して、管理インターフェイスの SSL/TLS を無効にすることもできます。

1.1.1. ウィザードを使用した管理インターフェイスの一方向 SSL/TLS の有効化

Elytron は、SSL/TLS を迅速にセットアップするウィザードを提供します。証明書が含まれる既存のキーストアを使用するか、ウィザードが生成するキーストアと自己署名証明書を使用して、SSL/TLS を有効にできます。--lets-encrypt オプションを使用して、Let's Encrypt 認証局から証明書を取得して使用することもできます。Let's Encrypt の詳細は、Let’s Encrypt のドキュメント を参照してください。

ウィザードが生成する自己署名証明書を使用して、テストおよび開発の目的でのみ SSL/TLS を有効にします。実稼働環境では、常に認証局 (CA) 署名の証明書を使用します。

重要

実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) が署名した証明書のみ使用してください。

ウィザードは、管理インターフェイスの SSL/TLS を有効にするために必要な以下のリソースを設定します。

  • key-store
  • key-manager
  • server-ssl-context
  • 次に、server-ssl-contexthttp-interface に適用されます。

Elytron は各リソースに resource-type-UUID という名前を付けます。たとえば、key-store-9e35a3be-62bb-4fff-afc2-2d8d141b82bc などです。Universally Unique Identifier (UUID) は、リソース名の競合を回避する際に役立ちます。

前提条件

  • JBoss EAP が実行している。

手順

  • ウィザードを起動し、管理 CLI で以下のコマンドを入力して管理インターフェイスの一方向 SSL/TLS を設定します。

    構文

    security enable-ssl-management --interactive
    Copy to Clipboard Toggle word wrap

    プロンプトが表示されたら、必要な情報を入力します。

    --lets-encrypt オプションを使用して、Let's Encrypt 認証局から証明書を取得して使用します。

    管理インターフェイスの SSL/TLS がすでに有効になっていると、ウィザードは終了し、次のメッセージが表示されます。

    SSL is already enabled for http-interface
    Copy to Clipboard Toggle word wrap

    既存の設定を変更するには、最初に管理インターフェイスの SSL/TLS を無効にしてから、新しい設定を作成します。管理インターフェイスの SSL/TLS を無効にする方法の詳細は、ウィザードを使用した管理インターフェイスの SSL/TLS の無効化 を参照してください。

    注記

    一方向 SSL/TLS を有効にするには、SSL 相互認証を有効にするようにプロンプトが表示されたら、n を入力するか空白にします。相互認証を設定すると、双方向 SSL/TLS が有効になります。

    ウィザードの対話的な使用例

    security enable-ssl-management --interactive
    Copy to Clipboard Toggle word wrap

    ウィザードプロンプトへの入力の例

    Please provide required pieces of information to enable SSL:
    
    Certificate info:
    Key-store file name (default management.keystore): exampleKeystore.pkcs12
    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=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct y/n [y]?y
    Validity (in days, blank default): 365
    Alias (blank generated): localhost
    Enable SSL Mutual Authentication y/n (blank n):n //For one way SSL/TLS enter blank or n here
    
    SSL options:
    keystore file: exampleKeystore.pkcs12
    distinguished name: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown,
    C=Unknown
    password: secret
    validity: 365
    alias: localhost
    Server keystore file exampleKeystore.pkcs12, certificate file exampleKeystore.pem and exampleKeystore.csr file will be generated in server configuration directory.
    
    Do you confirm y/n :y
    Copy to Clipboard Toggle word wrap

    y を入力すると、サーバーはリロードします。自己署名証明書を設定した場合、ウィザードを使用して自己署名証明書を生成した場合、または Java 仮想マシン (JVM) で信頼されない証明書を設定した場合、管理 CLI はサーバーが提示する証明書を受け入れるように要求します。

    Unable to connect due to unrecognised server certificate
    Subject    - CN=localhost,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknown
    Issuer     - CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
    Valid From - Mon Jan 30 23:32:20 IST 2023
    Valid To   - Tue Jan 30 23:32:20 IST 2024
    MD5 : b6:e7:f0:57:59:9e:bf:b8:20:99:10:fc:e2:0b:0f:d0
    SHA1 : 9c:f0:92:de:c1:11:df:71:0b:d7:16:02:c8:7e:c9:83:ab:e3:0c:2e
    
    
    Accept certificate? [N]o, [T]emporarily, [P]ermanently :
    Copy to Clipboard Toggle word wrap

    T または P を入力して接続を続行します。

    次の出力が得られます。

    Server reloaded.
    SSL enabled for http-interface
    ssl-context is ssl-context-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1
    key-manager is key-manager-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1
    key-store   is key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1
    Copy to Clipboard Toggle word wrap

検証

  • 管理 CLI クライアントと接続して SSL/TLS を確認します。

    Elytron クライアント SSL コンテキストを設定ファイルに配置し、管理 CLI を使用してサーバーに接続して、設定ファイルを参照することで、SSL/TLS をテストできます。

    1. キーストアファイルを含むディレクトリーに移動します。この例では、キーストアファイル exampleKeystore.pkcs12 がサーバーの standalone/configuration ディレクトリーに生成されました。

      $ cd JBOSS_HOME/standalone/configuration
      Copy to Clipboard Toggle word wrap

    2. サーバー証明書を使用して、クライアント trust-store を作成します。

      構文

      $ keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>
      Copy to Clipboard Toggle word wrap

      $ keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file exampleKeystore.pem
      Copy to Clipboard Toggle word wrap

      自己署名証明書を使用した場合は、証明書を信頼するように求められます。

    3. ファイルでクライアント側の SSL コンテキストを定義します (例: example-security.xml)。

      構文

      <?xml version="1.0" encoding="UTF-8"?>
      
      <configuration>
          <authentication-client xmlns="urn:elytron:client:1.2">
              <key-stores>
                  <key-store name="${key-store_name}" type="PKCS12" >
                      <file name="${path_to_truststore}"/>
                      <key-store-clear-password password="${keystore_password}" />
                  </key-store>
              </key-stores>
              <ssl-contexts>
                  <ssl-context name="${ssl_context_name}">
                      <trust-store key-store-name="${trust_store_name}" />
                  </ssl-context>
              </ssl-contexts>
              <ssl-context-rules>
                  <rule use-ssl-context="${ssl_context_name}" />
              </ssl-context-rules>
          </authentication-client>
      </configuration>
      Copy to Clipboard Toggle word wrap

      <?xml version="1.0" encoding="UTF-8"?>
      
      <configuration>
          <authentication-client xmlns="urn:elytron:client:1.2">
              <key-stores>
                  <key-store name="clientStore" type="PKCS12" >
                      <file name="JBOSS_HOME/standalone/configuration/client.truststore.pkcs12"/>
                      <key-store-clear-password password="secret" />
                  </key-store>
              </key-stores>
              <ssl-contexts>
                  <ssl-context name="client-SSL-context">
                      <trust-store key-store-name="clientStore" />
                  </ssl-context>
              </ssl-contexts>
              <ssl-context-rules>
                  <rule use-ssl-context="client-SSL-context" />
              </ssl-context-rules>
          </authentication-client>
      </configuration>
      Copy to Clipboard Toggle word wrap

    4. サーバーに接続してコマンドを発行します。

      $ EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=<path_to_the_configuration_file>/example-security.xml :whoami
      Copy to Clipboard Toggle word wrap

      予想される出力

      {
          "outcome" => "success",
          "result" => {"identity" => {"username" => "$local"}}
      }
      Copy to Clipboard Toggle word wrap

  • ブラウザーを使用して SSL/TLS を確認します。

    1. https://localhost:9993 に移動します。

      自己署名証明書を使用した場合が、サーバーが提示した証明書が不明であるという警告がブラウザーに表示されます。

    2. 証明書を調べて、ブラウザーに表示されるフィンガープリントが、キーストアの証明書のフィンガープリントと一致することを確認します。次のコマンドを使用して、生成した証明書を表示できます。

      構文

      /subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/key-store=key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1:read-alias(alias="localhost")
      Copy to Clipboard Toggle word wrap

      ウィザードの出力からキーストア名を取得できます (例: "key-store is key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1")。

      出力例

      ...
      "sha-1-digest" => "48:e3:6f:16:d1:af:4b:31:8f:9b:0b:7f:33:94:58:af:69:85:c
      0:ea",
      "sha-256-digest" => "8f:3e:6b:b5:56:e0:d1:97:81:bc:f1:8d:c8:66:75:06:db:7d
      :4d:b6:b1:d3:34:dd:f5:6c:85:ca:c7:2b:5b:c7",
      ...
      Copy to Clipboard Toggle word wrap

      サーバー証明書を許可すると、ログイン認証情報の入力を求められます。既存 JBoss EAP ユーザーのユーザー認証情報を使用してログインできます。

これで、SSL/TLS が JBoss EAP 管理インターフェイスに対して有効になりました。

1.1.2. サブシステムコマンドを使用した管理インターフェイスの一方向 SSL/TLS の有効化

elytron サブシステムコマンドを使用して、JBoss EAP 管理インターフェイスを SSL/TLS で保護します。

テストおよび開発の目的で、自己署名証明書を使用できます。証明書が含まれる既存のキーストアを使用するか、key-store リソースの作成時に Elytron が生成するキーストアを使用できます。実稼働環境では、常に認証局 (CA) 署名の証明書を使用します。

重要

実稼働環境では自己署名証明書を使用しないでください。認証局 (CA) が署名した証明書のみ使用してください。

前提条件

  • JBoss EAP が実行している。

手順

  1. 証明書を格納するようにキーストアを設定します。

    たとえば、CA 署名の証明書が含まれるキーストアなどの既存のキーストアへのパスを指定するか、作成するキーストアへのパスを指定できます。

    /subsystem=elytron/key-store=<keystore_name>:add(path=<path_to_keystore>, credential-reference=<credential_reference>, type=<keystore_type>)
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/key-store=exampleKeyStore:add(path=exampleserver.keystore.pkcs12, relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12)
    Copy to Clipboard Toggle word wrap

  2. キーストアに証明書が含まれていない場合や、上記の手順を使用してキーストアを作成した場合は、証明書を生成し、証明書をファイルに保存する必要があります。

    1. キーストアでキーペアを生成します。

      構文

      /subsystem=elytron/key-store=<keystore_name>:generate-key-pair(alias=<keystore_alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validity_in_days>,credential-reference=<credential_reference>,distinguished-name="<distinguished_name>")
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/key-store=exampleKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")
      Copy to Clipboard Toggle word wrap

    2. 証明書をファイルに保存します。

      構文

      /subsystem=elytron/key-store=<keystore_name>:store()
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/key-store=exampleKeyStore:store()
      Copy to Clipboard Toggle word wrap

  3. key-store を参照する key-manager を設定します。

    構文

    /subsystem=elytron/key-manager=<key-manager_name>:add(key-store=<key-store_name>,credential-reference=<credential_reference>)
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/key-manager=exampleKeyManager:add(key-store=exampleKeyStore,credential-reference={clear-text=secret})
    Copy to Clipboard Toggle word wrap

    重要

    elytron サブシステムはデフォルトで KeyManagerFactory.getDefaultAlgorithm() を使用してアルゴリズムを決定するため、Red Hat はアルゴリズム属性を指定しませんでした。ただし、アルゴリズム属性は指定できます。

    アルゴリズム属性を指定するには、使用している Java Development Kit (JDK) が提供するキーマネージャーアルゴリズムを知る必要があります。たとえば、Java Secure Socket Extension (SunJSSE) を使用する JDK は、PKIX および SunX509 アルゴリズムを提供します。

    このコマンドでは、SunX509 を key-manager アルゴリズム属性として指定できます。

  4. key-manager を参照する server-ssl-context を設定します。

    構文

    /subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/server-ssl-context=examplehttpsSSC:add(key-manager=exampleKeyManager, protocols=["TLSv1.2"])
    Copy to Clipboard Toggle word wrap

    重要

    利用できるようにする必要のある SSL/TLS プロトコルを決定する必要があります。コマンド例は TLSv1.2 を使用します。

    • TLSv1.2 以前の場合は、cipher-suite-filter 引数を使用して、許可される暗号スイートを指定します。
    • TLSv1.3 の場合は、cipher-suite-names 引数を使用して、許可される暗号スイートを指定します。TLSv1.3 は、デフォルトでは無効になっています。protocols 属性でプロトコルを指定しない場合、または指定されたセットに TLSv1.3 が含まれている場合は、cipher-suite-names を設定すると TLSv1.3 が有効になります。

    use-cipher-suites-order 引数を使用して、サーバーの暗号スイートの順序に従います。use-cipher-suites-order 属性は、デフォルトで true に設定されています。これは、デフォルトでクライアント暗号スイートの順序に従うレガシーセキュリティーサブシステムの動作とは異なります。

  5. 設定した server-ssl-context を使用するように管理インターフェイスを更新します。

    構文

    /core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=<server-ssl-context_name>)
    /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
    Copy to Clipboard Toggle word wrap

    /core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=examplehttpsSSC)
    /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
    Copy to Clipboard Toggle word wrap

  6. サーバーをリロードします。

    reload
    Copy to Clipboard Toggle word wrap

    SSL/TLS を有効にするために自己署名証明書を使用した場合、管理 CLI はサーバーが提示する証明書を受け入れるように要求します。これは、キーストアを設定した証明書です。

    出力例

    Unable to connect due to unrecognised server certificate
    Subject    - CN=localhost
    Issuer     - CN=localhost
    Valid From - Mon Jan 30 23:47:21 IST 2023
    Valid To   - Tue Jan 30 23:47:21 IST 2024
    MD5 : a1:00:84:78:a6:46:a4:78:4d:44:c8:6d:ba:1f:30:6a
    SHA1 : a4:e5:c1:34:ad:e0:91:18:6f:f6:57:09:91:ae:17:8d:70:f0:1a:7d
    
    
    Accept certificate? [N]o, [T]emporarily, [P]ermanently :
    Copy to Clipboard Toggle word wrap

    T または P を入力して接続を続行します。

検証

  • クライアントを介して接続して SSL/TLS を確認します。

    設定ファイル内に Elytron クライアント SSL コンテキストを配置し、設定ファイルを参照する管理 CLI を使用してサーバーに接続すると、SSL/TLS をテストできます。

    1. キーストアファイルを含むディレクトリーに移動します。この例では、キーストアファイル exampleserver.keystore.pkcs12 がサーバーの standalone/configuration ディレクトリーに生成されました。

      $ cd JBOSS_HOME/standalone/configuration
      Copy to Clipboard Toggle word wrap

    2. サーバー証明書をエクスポートして、クライアントトラストストアにインポートできるようにします。

      $ keytool -export -alias <alias> -keystore <key_store> -storepass <keystore_password>-file <file_name>
      Copy to Clipboard Toggle word wrap

      $ keytool -export -alias localhost -keystore exampleserver.keystore.pkcs12 -file -storepass secret server.cer
      Copy to Clipboard Toggle word wrap

    3. サーバー証明書を使用して、クライアント trust-store を作成します。

      構文

      $ keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>
      Copy to Clipboard Toggle word wrap

      $ keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file server.cer
      Copy to Clipboard Toggle word wrap

      自己署名証明書を使用した場合は、証明書を信頼するように求められます。

    4. ファイルでクライアント側の SSL コンテキストを定義します (例: example-security.xml)。

      構文

      <?xml version="1.0" encoding="UTF-8"?>
      
      <configuration>
          <authentication-client xmlns="urn:elytron:client:1.2">
              <key-stores>
                  <key-store name="${key-store_name}" type="PKCS12" >
                      <file name="${path_to_truststore}"/>
                      <key-store-clear-password password="${keystore_password}" />
                  </key-store>
              </key-stores>
              <ssl-contexts>
                  <ssl-context name="${ssl_context_name}">
                      <trust-store key-store-name="${trust_store_name}" />
                  </ssl-context>
              </ssl-contexts>
              <ssl-context-rules>
                  <rule use-ssl-context="${ssl_context_name}" />
              </ssl-context-rules>
          </authentication-client>
      </configuration>
      Copy to Clipboard Toggle word wrap

      <?xml version="1.0" encoding="UTF-8"?>
      
      <configuration>
          <authentication-client xmlns="urn:elytron:client:1.2">
              <key-stores>
                  <key-store name="clientStore" type="PKCS12" >
                      <file name="JBOSS_HOME/standalone/configuration/client.truststore.pkcs12"/>
                      <key-store-clear-password password="secret" />
                  </key-store>
              </key-stores>
              <ssl-contexts>
                  <ssl-context name="client-SSL-context">
                      <trust-store key-store-name="clientStore" />
                  </ssl-context>
              </ssl-contexts>
              <ssl-context-rules>
                  <rule use-ssl-context="client-SSL-context" />
              </ssl-context-rules>
          </authentication-client>
      </configuration>
      Copy to Clipboard Toggle word wrap

    5. サーバーに接続してコマンドを発行します。

      $ EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=example-security.xml :whoami
      Copy to Clipboard Toggle word wrap

      予想される出力

      {
          "outcome" => "success",
          "result" => {"identity" => {"username" => "$local"}}
      }
      Copy to Clipboard Toggle word wrap

  • ブラウザーを使用して SSL/TLS を確認します。

    1. https://localhost:9993 に移動します。

      自己署名証明書を使用した場合が、サーバーが提示した証明書が不明であるという警告がブラウザーに表示されます。

    2. 証明書を調べて、ブラウザーに表示されるフィンガープリントが、キーストアの証明書のフィンガープリントと一致することを確認します。次のコマンドを使用して、生成した証明書を表示できます。

      構文

      /subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/key-store=exampleKeyStore:read-alias(alias="localhost")
      Copy to Clipboard Toggle word wrap

      出力例

      ...
      "sha-1-digest" => "48:e3:6f:16:d1:af:4b:31:8f:9b:0b:7f:33:94:58:af:69:85:c
      0:ea",
      "sha-256-digest" => "8f:3e:6b:b5:56:e0:d1:97:81:bc:f1:8d:c8:66:75:06:db:7d
      :4d:b6:b1:d3:34:dd:f5:6c:85:ca:c7:2b:5b:c7",
      ...
      Copy to Clipboard Toggle word wrap

      サーバー証明書を許可すると、ログイン認証情報の入力を求められます。既存 JBoss EAP ユーザーのユーザー認証情報を使用してログインできます。

これで、SSL/TLS が JBoss EAP 管理インターフェイスに対して有効になりました。

1.1.3. security コマンドを使用した管理インターフェイスの SSL/TLS の無効化

security コマンドを使用して、管理インターフェイスの SSL/TLS を無効にします。これを実行して、設定されているものとは異なる SSL/TLS 設定を使用することを推奨します。

コマンドを使用して SSL/TLS を無効にしても、Elytron リソースは削除されません。このコマンドは単に、http-interface management-interface リソースの secure-socket-binding および ssl-context 属性の定義を解除します。

前提条件

  • JBoss EAP が実行している。

手順

  • 管理 CLI で disable-ssl-management コマンドを使用します。

    security disable-ssl-management
    Copy to Clipboard Toggle word wrap

    サーバーがリロードされ、以下の出力が表示されます。

    ...
    Server reloaded.
    Reconnected to server.
    SSL disabled for http-interface
    Copy to Clipboard Toggle word wrap

以下のいずれかの方法で、サーバー管理インターフェイスに対して SSL/TLS を有効にできます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る