Dois keystores estão incluídos na amostra, server.keystore e client.keystore, esses keystores são importados com o projeto AddressBook; pode-se deixá-los onde estão ou exportá-los a um local mais conveniente. Você deve configurar seu intermediário para utilizar esses armazenamentos de chave; o provedor e o consumidor são implementados para diferentes grupos de execução e pode configurar um armazenamento de chave e armazenamento de chave diferente para cada grupo de execução. Visualizar o conteúdo desses armazenamentos de chave ajuda a entender as duas ligações que devem ser criadas para configurar o WS-Security. Para visualizar o conteúdo, emita os comandos a seguir no diretório que contém os keystores:
keytool -list -keystore server.keystore -storepass server -v
keytool -list -keystore client.keystore -storepass client -v
Os armazenamentos de chave podem conter dois tipos de entradas: keyEntrys e trustedCertificateEntries. Se um armazenamento de chave for utilizado para conter os certificados confiáveis, ele geralmente é conhecido como um armazenamento de confiança. Seu intermediário pode fazer referência a um armazenamento de chave e um armazenamento de confiança por grupo de execução. Se seu intermediário estiver criptografando ou decriptografando, ele utilizará as entradas em seu armazenamento de chave, se estiver verificando uma assinatura ou executando a autenticação X.509 que utilize as entradas em seu armazenamento de confiança. Essa amostra utiliza o mesmo armazenamento de chave para o armazenamento de chave e o armazenamento de confiança.
Para descobrir qual armazenamento de confiança e armazenamento de chave seu intermediário pode utilizar, emita os seguintes comandos:
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleProvider
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleConsumer
As propriedades ficarão em branco a menos que tenham configurado quaisquer dos valores relacionados aos armazenamentos de chave e armazenamentos de confiança. Para configurar um armazenamento de chave e armazenamento de confiança por grupo de execução, os seis valores a seguir devem ser configurados: keystoreType, keyStoreFile, keystorePass, truststoreType, truststoreFile e truststorePass.
Para configurar o keystore e o truststore do provedor, use os comandos a seguir para alterar o local para o local completo (não apenas server.keystore e client.keystore) do keystore, pode ser útil exportar os keystores da área de trabalho para um local como 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
Utilize os seguintes comandos para configurar o armazenamento de chave e o armazenamento de confiança do consumidor:
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
Os keystores geralmente têm senhas; a senha para server.keystore é "server" e a senha para client.keystore é "client". Os comandos anteriores configuraram referências para onde as senhas estão armazenadas. Como o mesmo armazenamento de chave está sendo utilizado para o armazenamento de chave e o armazenamento de confiança, apenas duas referências são necessárias, uma para o armazenamento de chave para o consumidor e uma para o armazenamento de chave para o provedor. Utilize os seguintes comandos para configurar o intermediário:
mqsistop MB8BROKER
Configure as senhas:
mqsisetdbparms MB8BROKER -n addressBookProvider::password -u temp -p server mqsisetdbparms MB8BROKER -n addressBookConsumer::password -u temp -p client
A opção -u (user) não é utilizada. Reinicie o intermediário:
mqsistart MB8BROKER
O intermediário agora possui acesso aos armazenamentos de chave. Para verificar que os comandos acima foram executados corretamente é possível relatar as propriedades dos dois grupos de execução novamente; a saída parece semelhante à seguinte saída:
Para o provedor:
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: Conclusão do comando bem-sucedido.
Para o consumidor:
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: Conclusão do comando bem-sucedido.
Voltar para Estendendo a Amostra para Incluir WS-Security