相互認証を使用するには、サーバーとエージェントが鍵を交換する必要があります。サーバー鍵を証明書としてエクスポートし、それをエージェント鍵ストアにインポートします。次に、プロセスを反転して、エージェント鍵をエクスポートし、それをサーバー鍵ストアにインポートします。
始める前に
鍵を交換する前に、以下のプロパティーが設定されていることを確認してください。
- サーバーの (サーバー・インストール/conf/server ディレクトリー内の) installed.properties ファイル内にある server.jms.mutualAuth プロパティーが true に設定されていること。
- 各エージェントについて、エージェントの (agent_install¥conf¥agent ディレクトリー内の) installed.properties ファイル内にある locked/agent.mutual_auth プロパティーが true に設定されていること。
- 各エージェント・リレーについて、リレーの (relay_install¥conf ディレクトリー内の) agentrelay.properties ファイル内にある agentrelay.jms_proxy.secure プロパティーが true に設定されていること。
- 各エージェント・リレーについて、リレーの agentrelay.properties ファイル内にある agentrelay.jms_proxy.mutualAuth プロパティーが true に設定されていること。
さらに、keytool ユーティリティー (Java™ Developer Kit と共に提供されており、IBM® UrbanCode™ Deploy の一部ではない) が、各サーバー、エージェント、およびエージェント・リレーのシステム・パスで使用可能であることを確認します。
このタスクについて
各サーバー、エージェント、およびエージェント・リレーには、そのシステムを識別する鍵が含まれています。相互認証は、それらの鍵をそれらのシステム間で相互に交換することで、各システムの ID を保証します。それらの鍵は、各サーバー、エージェント、およびエージェント・リレーの
conf フォルダー内のファイル
encryption.keystore に格納されています。以下のステップでは、各システムから鍵をエクスポートし、
keytool ユーティリティーを使用してその鍵を他の各システムにインポートします。
手順
- 以下のようにして、証明書を、サーバーから、サーバーに直接接続する各エージェントまたはエージェント・リレーにコピーします。
- サーバー上で、コマンド行ウィンドウを開き、ファイル server.keystore が含まれているフォルダーに移動します。 デフォルトでは、このフォルダーは アプリケーション・データ/conf というロケーションにあります。この場合の アプリケーション・データ は、インストール時に設定したアプリケーション・データ・フォルダーです。デフォルトのアプリケーション・データ・フォルダーは、Linux 上では /opt/ibm-ucd/server/appdata であり、Windows 上では C:¥Program Files¥ibm-ucd¥server¥appdata です。高可用性クラスターの場合、アプリケーション・データ・フォルダーは、通常、共有リモート・ディレクトリーにあります。
- 以下のコマンドを実行して、サーバー鍵をエクスポートします。
keytool -exportcert -keystore server.keystore -storepass changeit -alias server -file server.crt
証明書がエクスポートされた場合、Certificate stored in file server.crt のメッセージが表示されます。
- エクスポートした鍵ファイル server.crt を、各エージェントのインストール済み環境の conf ディレクトリーまたはエージェント・リレーのインストール済み環境の conf/jms-relay ディレクトリーにコピーします。
- エージェントの 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 というメッセージが表示されます。これで、サーバー証明書が、エージェントまたはエージェント・リレーの鍵ストアに存在します。
- サーバーに直接接続するエージェントおよびエージェント・リレーごとにこのプロセスを繰り返します。
注: エージェント・リレーを介してサーバーと通信するエージェントは、サーバーと証明書を交換する必要はありません。サーバーに接続するエージェント・リレーのみが、サーバーと証明書を交換する必要があります。ただし、エージェント・リレーと各リモート・エージェントの間では証明書を交換する必要があります。
- 以下のようにして、サーバーに直接接続する各エージェントまたはエージェント・リレーから証明書をコピーして、その証明書をサーバー鍵ストアにインポートします。
- エージェントまたはエージェント・リレーをホストするシステム上でコマンド行ウィンドウを開き、ファイル agent.keystore またはファイル agentrelay.keystore が含まれているフォルダーに移動します。
- 以下のコマンドを実行して、証明書をエクスポートします。
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 というメッセージが表示されます。
- エクスポートした鍵ファイルを、サーバーの app_data/conf フォルダー (app_data はアプリケーション・データ・フォルダー) にコピーします。
- 以下のコマンドを実行して、エージェントまたはエージェント・リレーの証明書をサーバー鍵ストアにインポートします。
keytool -importcert -keystore server.keystore -storepass changeit
-alias uniqueAlias -file agentName.crt -keypass changeit -noprompt
uniqueAlias には、エージェントを識別する、固有の鍵の別名を使用します。 証明書がインポートされた場合、Certificate was added to keystore というメッセージが表示されます。
- サーバーに直接接続するエージェントおよびエージェント・リレーごとにこのプロセスを繰り返します。
注: エージェント・リレーを介してサーバーと通信するエージェントは、サーバーと証明書を交換する必要はありません。サーバーに接続するエージェント・リレーのみが、サーバーと証明書を交換する必要があります。ただし、エージェント・リレーと各リモート・エージェントの間では証明書を交換する必要があります。
- オプション: ローカルのエージェントまたはエージェント・リレーごとに、鍵の別名を、サーバー上で使用したのと同じ値に設定します。 エージェントの conf ディレクトリーまたはエージェント・リレーの jms-relay ディレクトリーから、以下のコマンドを実行します。
keytool -changealias -destalias uniqueAlias -alias defaultAlias -keystore agent.keystore -storepass changeit
デフォルトのエージェント別名は ibm-ucd_agent で、デフォルトのエージェント・リレー別名は agentrelay です。
- エージェント・リレーを使用する場合は、確立された方法を使用してリモート・エージェントをそれらに接続します。 各リモート・エージェントはリレーの証明書をインポートする必要があり、リレーはサーバーからの証明書に加え、各リモート・エージェントからの証明書をインポートする必要があります。
- サーバー、エージェント、およびエージェント・リレーを再始動します。
次のタスク
エージェントおよびエージェント・リレーがサーバーに接続できることを確認します。
conf ディレクトリー内から以下のコマンドを実行して、鍵ストアにロードされた証明書をリストすることもできます。
keytool -list -keystore keystoreFile -storepass changeit
サーバー間の鍵の交換について詳しくは、保護されたプロパティーのサーバー間での共有を参照してください。