相互認証の構成

相互認証を使用するには、サーバーとエージェントが鍵を交換する必要があります。サーバー鍵を証明書としてエクスポートし、それをエージェント鍵ストアにインポートします。次に、プロセスを反転して、エージェント鍵をエクスポートし、それをサーバー鍵ストアにインポートします。

始める前に

鍵を交換する前に、以下のプロパティーが設定されていることを確認してください。
  1. サーバーの (サーバー・インストール/conf/server ディレクトリー内の) installed.properties ファイル内にある server.jms.mutualAuth プロパティーが true に設定されていること。
  2. 各エージェントについて、エージェントの (agent_install¥conf¥agent ディレクトリー内の) installed.properties ファイル内にある locked/agent.mutual_auth プロパティーが true に設定されていること。
  3. 各エージェント・リレーについて、リレーの (relay_install¥conf ディレクトリー内の) agentrelay.properties ファイル内にある agentrelay.jms_proxy.secure プロパティーが true に設定されていること。
  4. 各エージェント・リレーについて、リレーの agentrelay.properties ファイル内にある agentrelay.jms_proxy.mutualAuth プロパティーが true に設定されていること。

さらに、keytool ユーティリティー (Java™ Developer Kit と共に提供されており、IBM® UrbanCode™ Deploy の一部ではない) が、各サーバー、エージェント、およびエージェント・リレーのシステム・パスで使用可能であることを確認します。

このタスクについて

各サーバー、エージェント、およびエージェント・リレーには、そのシステムを識別する鍵が含まれています。相互認証は、それらの鍵をそれらのシステム間で相互に交換することで、各システムの ID を保証します。それらの鍵は、各サーバー、エージェント、およびエージェント・リレーの conf フォルダー内のファイル encryption.keystore に格納されています。以下のステップでは、各システムから鍵をエクスポートし、keytool ユーティリティーを使用してその鍵を他の各システムにインポートします。

手順

  1. 以下のようにして、証明書を、サーバーから、サーバーに直接接続する各エージェントまたはエージェント・リレーにコピーします。
    1. サーバー上で、コマンド行ウィンドウを開き、ファイル server.keystore が含まれているフォルダーに移動します。 デフォルトでは、このフォルダーは アプリケーション・データ/conf というロケーションにあります。この場合の アプリケーション・データ は、インストール時に設定したアプリケーション・データ・フォルダーです。デフォルトのアプリケーション・データ・フォルダーは、Linux 上では /opt/ibm-ucd/server/appdata であり、Windows 上では C:¥Program Files¥ibm-ucd¥server¥appdata です。高可用性クラスターの場合、アプリケーション・データ・フォルダーは、通常、共有リモート・ディレクトリーにあります。
    2. 以下のコマンドを実行して、サーバー鍵をエクスポートします。
      keytool -exportcert -keystore server.keystore -storepass changeit -alias server -file server.crt
      証明書がエクスポートされた場合、Certificate stored in file server.crt のメッセージが表示されます。
    3. エクスポートした鍵ファイル server.crt を、各エージェントのインストール済み環境の conf ディレクトリーまたはエージェント・リレーのインストール済み環境の conf/jms-relay ディレクトリーにコピーします。
    4. エージェントの conf ディレクトリーまたはエージェント・リレーの jms-relay ディレクトリー内から以下のコマンドを実行して、サーバー証明書をエージェントまたはエージェント・リレーの鍵ストアにインポートします。
      keytool -importcert -keystore keystoreFile -storepass changeit -alias server -file server.crt -keypass changeit -noprompt
      keystoreFile については、エージェントの場合は agent.keystore を、エージェント・リレーの場合は agentrelay.keystore を、それぞれ使用してください。 証明書がインポートされた場合、Certificate was added to keystore というメッセージが表示されます。これで、サーバー証明書が、エージェントまたはエージェント・リレーの鍵ストアに存在します。
    5. サーバーに直接接続するエージェントおよびエージェント・リレーごとにこのプロセスを繰り返します。
      注: エージェント・リレーを介してサーバーと通信するエージェントは、サーバーと証明書を交換する必要はありません。サーバーに接続するエージェント・リレーのみが、サーバーと証明書を交換する必要があります。ただし、エージェント・リレーと各リモート・エージェントの間では証明書を交換する必要があります。
  2. 以下のようにして、サーバーに直接接続する各エージェントまたはエージェント・リレーから証明書をコピーして、その証明書をサーバー鍵ストアにインポートします。
    1. エージェントまたはエージェント・リレーをホストするシステム上でコマンド行ウィンドウを開き、ファイル agent.keystore またはファイル agentrelay.keystore が含まれているフォルダーに移動します。
    2. 以下のコマンドを実行して、証明書をエクスポートします。
      keytool -exportcert -keystore keystoreFile -storepass changeit 
      -alias ibm-ucd_agent -file agentName.crt
      keystoreFile については、エージェントの場合は agent.keystore を、エージェント・リレーの場合は agentrelay.keystore を、それぞれ使用してください。 デフォルトのエージェント別名は ibm-ucd_agent です。agentName には、エージェントまたはエージェント・リレーの固有ストリング ID を指定します。 証明書がエクスポートされた場合、Certificate stored in file agentName.crt というメッセージが表示されます。
    3. エクスポートした鍵ファイルを、サーバーの app_data/conf フォルダー (app_data はアプリケーション・データ・フォルダー) にコピーします。
    4. 以下のコマンドを実行して、エージェントまたはエージェント・リレーの証明書をサーバー鍵ストアにインポートします。
      keytool -importcert -keystore server.keystore -storepass changeit 
      -alias uniqueAlias -file agentName.crt -keypass changeit -noprompt
      uniqueAlias には、エージェントを識別する、固有の鍵の別名を使用します。 証明書がインポートされた場合、Certificate was added to keystore というメッセージが表示されます。
    5. サーバーに直接接続するエージェントおよびエージェント・リレーごとにこのプロセスを繰り返します。
      注: エージェント・リレーを介してサーバーと通信するエージェントは、サーバーと証明書を交換する必要はありません。サーバーに接続するエージェント・リレーのみが、サーバーと証明書を交換する必要があります。ただし、エージェント・リレーと各リモート・エージェントの間では証明書を交換する必要があります。
  3. オプション: ローカルのエージェントまたはエージェント・リレーごとに、鍵の別名を、サーバー上で使用したのと同じ値に設定します。 エージェントの conf ディレクトリーまたはエージェント・リレーの jms-relay ディレクトリーから、以下のコマンドを実行します。
    keytool -changealias -destalias uniqueAlias -alias defaultAlias -keystore agent.keystore -storepass changeit
    デフォルトのエージェント別名は ibm-ucd_agent で、デフォルトのエージェント・リレー別名は agentrelay です。
  4. エージェント・リレーを使用する場合は、確立された方法を使用してリモート・エージェントをそれらに接続します。 各リモート・エージェントはリレーの証明書をインポートする必要があり、リレーはサーバーからの証明書に加え、各リモート・エージェントからの証明書をインポートする必要があります。
  5. サーバー、エージェント、およびエージェント・リレーを再始動します。

次のタスク

エージェントおよびエージェント・リレーがサーバーに接続できることを確認します。

conf ディレクトリー内から以下のコマンドを実行して、鍵ストアにロードされた証明書をリストすることもできます。

keytool -list -keystore keystoreFile -storepass changeit

サーバー間の鍵の交換について詳しくは、保護されたプロパティーのサーバー間での共有を参照してください。


フィードバック