server.keystore および client.keystore の 2 つの鍵ストアがサンプルに含まれています。 これらの鍵ストアは AddressBook プロジェクトと共にインポートされます。 それらをそのままにしておくことも、より便利な場所にエクスポートすることもできます。 これらの鍵ストアを使用するようにブローカーを構成する必要があります。 プロバイダーとコンシューマーは異なる実行グループにデプロイされるので、実行グループごとに異なる鍵ストアとトラストストアを設定できます。 これらの鍵ストアの内容を表示すると、WS-Security をセットアップするために必要な 2 つのバインディングを理解するのに役立ちます。 内容を表示するには、鍵ストアを含むディレクトリーで以下のコマンドを発行してください。
keytool -list -keystore server.keystore -storepass server -v
keytool -list -keystore client.keystore -storepass client -v
鍵ストアには、keyEntrys および trustedCertificateEntries の、2 種類の項目を入れることができます。 鍵ストアがトラステッド証明書を入れるために使用される場合、それは通常トラストストアと呼ばれます。 ブローカーは、実行グループごとに鍵ストアおよびトラストストアを参照できます。 ブローカーが暗号化または暗号化解除を行っている場合、それはこの鍵ストア内の項目を使用します。 シグニチャーの検証または X.509 認証を行っている場合、それはトラストストア内の項目を使用します。 このサンプルでは、鍵ストアおよびトラストストアの両方に同じ鍵ストアを使用します。
ブローカーが使用できるトラストストアおよび鍵ストアを見つけるには、以下のコマンドを発行してください。
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleProvider
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleConsumer
鍵ストアおよびトラストストアに関連したいずれかの値を設定していなければ、プロパティーはブランクになります。 実行グループごとに鍵ストアおよびトラストストアをセットアップするには、以下の 6 つの値を設定する必要があります。 keystoreType、keyStoreFile、keystorePass、truststoreType、truststoreFile、および truststorePass。
プロバイダーの鍵ストアおよびトラストストアをセットアップするには、 以下のコマンドを使用して場所を完全修飾の場所 (server.keystore および client.keystore だけではない) に変更します。 鍵ストアをワークスペースから C:¥keystores などの場所にエクスポートすると役立つ場合があります。
mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystoreFile -v [Location of server keystore] mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystorePass -v addressBookProvider::password mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststoreFile -v [Location of server keystore] mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststorePass -v addressBookProvider::password
以下のコマンドを使用して、コンシューマーの鍵ストアおよびトラストストアをセットアップします。
mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystoreFile -v [Location of client keystore] mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystorePass -v addressBookConsumer::password mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststoreFile -v [Location of client keystore] mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststorePass -v addressBookConsumer::password
鍵ストアには、通常パスワードがあります。 server.keystore のパスワードは "server" で、client.keystore のパスワードは "client" です。 前述のコマンドは、パスワードが保管されている場所への参照をセットアップします。 同じ鍵ストアが鍵ストアおよびトラストストアに対して使用されるので、2 つの参照だけが必要となります。 1 つはコンシューマー用の鍵ストアで、1 つはプロバイダー用の鍵ストアです。 以下のコマンドを使用して、ブローカーを構成します。
mqsistop MB8BROKER
次のようにパスワードを設定します。
mqsisetdbparms MB8BROKER -n addressBookProvider::password -u temp -p server mqsisetdbparms MB8BROKER -n addressBookConsumer::password -u temp -p client
-u (ユーザー) オプションは使用されません。 ブローカーを再始動します。
mqsistart MB8BROKER
これで、ブローカーは鍵ストアにアクセスできます。 上記のコマンドが正しく実行されたこと検証するために、2 つの実行グループのプロパティーを再び報告できます。 その出力は、以下の出力のようになります。
プロバイダーでは:
ComIbmJVMManager uuid='ComIbmJVMManager' userTraceLevel='none' traceLevel='none' userTraceFilter='none' traceFilter='none' jvmVerboseOption='none' jvmDisableClassGC='false' jvmNativeStackSize='-1' jvmMinHeapSize='33554432' jvmMaxHeapSize='-1' jvmDebugPort='0' keystoreType='JKS' keystoreFile='C:\keystores\server.keystore' keystorePass='addressBookProvider::password' truststoreType='JKS' truststoreFile='C:\keystores\server.keystore' truststorePass='addressBookProvider::password' BIP8071I: コマンドが正常に完了しました
コンシューマーでは:
ComIbmJVMManager uuid='ComIbmJVMManager' userTraceLevel='none' traceLevel='none' userTraceFilter='none' traceFilter='none' jvmVerboseOption='none' jvmDisableClassGC='false' jvmNativeStackSize='-1' jvmMinHeapSize='33554432' jvmMaxHeapSize='-1' jvmDebugPort='0' keystoreType='JKS' keystoreFile='C:\keystores\client.keystore' keystorePass='addressBookConsumer::password' truststoreType='JKS' truststoreFile='C:\keystores\client.keystore' truststorePass='addressBookConsumer::password' BIP8071I: コマンドが正常に完了しました