En el ejemplo se incluyen dos almacenes de claves, server.keystore y client.keystore. Estos almacenes se importan con el proyecto AddressBook; puede dejarlos donde están o exportarlos a una ubicación más adecuada. Debe configurar el intermediario para utilizar estos almacenes de claves; el proveedor y el consumidor se despliegan en diferentes grupos de ejecución y puede establecer un almacén de claves y un almacén de confianza diferentes para cada grupo de ejecución. La visualización del contenido de estos almacenes de claves le ayuda a comprender los dos enlaces que se deben crear para configurar WS-Security. Para ver el contenido, emita los mandatos siguientes en el directorio que contiene los almacenes de claves:
keytool -list -keystore server.keystore -storepass server -v
keytool -list -keystore client.keystore -storepass client -v
Los almacenes de claves pueden contener dos clases de entradas: keyEntrys y trustedCertificateEntries. Si se utiliza un almacén de claves para que contenga certificados de confianza, normalmente se le denomina almacén de confianza. El intermediario puede hacer referencia a un almacén de claves y a un almacén de confianza por grupo de ejecución. Si el intermediario está cifrando o descifrando, utiliza entradas del almacén de claves, y si está verificando una firma o realizando la autenticación de X.509, utiliza entradas del almacén de confianza. Este ejemplo utiliza el mismo almacén de claves para el almacén de claves y el almacén de confianza.
Para averiguar qué almacén de confianza o almacén de claves puede utilizar el intermediario, emita los mandatos siguientes:
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleProvider
mqsireportproperties MB8BROKER -o ComIbmJVMManager -a -e AddressSampleConsumer
Las propiedades están en blanco a menos que haya establecido alguno de los valores relacionados con los almacenes de claves y los almacenes de confianza. Para configurar un almacén de claves y un almacén de confianza por grupo de ejecución, se deben establecer los seis valores siguientes: keystoreType, keyStoreFile, keystorePass, truststoreType, truststoreFile y truststorePass.
Para configurar el almacén de proveedor y el almacén de confianza, utilice los siguientes mandatos para cambiar la ubicación por la ubicación completa (no sólo server.keystore y client.keystore) del almacén de claves, puede resultarle útil exportar los almacenes de claves del espacio de trabajo a una ubicación como por ejemplo C:\ keystores:
mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n keystoreFile -v [Ubicación del almacén de claves de servidor] 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 [Ubicación del almacén de claves de servidor] mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleProvider -o ComIbmJVMManager -n truststorePass -v addressBookProvider::password
Utilice los mandatos siguientes para configurar el almacén de claves y el almacén de confianza del consumidor:
mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n keystoreFile -v [Ubicación del almacén de claves de cliente] 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 [Ubicación del almacén de claves de cliente] mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststoreType -v JKS mqsichangeproperties MB8BROKER -e AddressSampleConsumer -o ComIbmJVMManager -n truststorePass -v addressBookConsumer::password
Los almacenes de claves suelen tener contraseñas. La contraseña de server.keystore es "server" y la contraseña de client.keystore es "client". La configuración de mandatos anterior hace referencia al lugar donde están almacenadas las contraseñas. Dado que se está utilizando el mismo almacén de claves para el almacén de claves y el almacén de confianza, sólo se necesitan dos referencias, una para el almacén de claves del consumidor y otra para el almacén de claves del proveedor. Utilice los siguientes mandatos para configurar el intermediario:
mqsistop MB8BROKER
Establezca las contraseñas:
mqsisetdbparms MB8BROKER -n addressBookProvider::password -u temp -p server mqsisetdbparms MB8BROKER -n addressBookConsumer::password -u temp -p client
La opción -u (usuario) no se utiliza. Reinicie el intermediario:
mqsistart MB8BROKER
Ahora el intermediario tiene acceso a los almacenes de claves. Para verificar que los mandatos anteriores se han ejecutado correctamente puede indicar las propiedades de los dos grupos de ejecución otra vez; la salida tiene un aspecto similar al de la salida siguiente:
Para el proveedor:
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: El mandato ha finalizado correctamente
Para el 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: El mandato ha finalizado correctamente
Volver a Ampliar el ejemplo para añadir WS-Security