Habilitación de la seguridad de TLS para los canales de MQ en MQ on Cloud
Los gestores de colas de MQ on Cloud anteriores a la versión 9.2.1 revisión 2 están configurados de forma predeterminada sin seguridad TLS. Las versiones posteriores tienen seguridad TLS en los canales de administración y de aplicación. Esta guía explica la seguridad TLS y le permite actualizar los gestores de colas anteriores al mismo nivel de seguridad que los nuevos. Las posteriores finales muestran cómo descargar los certificados necesarios para que las aplicaciones se conecten al gestor de colas.
La aplicación o el software de administración necesita confiar en un certificado público para el certificado del gestor de colas de MQ on Cloud. Puede ser el certificado de emisor o el certificado de gestor de colas individual. Ambos están disponibles para descargarlos desde la consola del servicio MQ on Cloud.
Tendrá que recopilar algunos datos de la instancia de cola de MQ on Cloud:
- Nombre de usuario y contraseña del usuario de administración.
- Nombre de usuario y contraseña de un usuario de la aplicación.
- La cadena de certificados que finaliza con el certificado del gestor de colas, empezando desde el certificado de CA raíz.
- La descripción del gestor de colas formateado en JSON (denominado datos de CCDT).
Los siguientes párrafos le guiarán en el proceso de recopilar datos de la consola de MQ on Cloud y también en el proceso de configurar un almacén de claves para gestionar certificados públicos de confianza en la máquina local. Las páginas subsiguientes enlazadas al final de este documento le mostrarán cómo administrar de forma remota utilizando TLS, y también cómo conectar los ejemplos de MQ C y JMS al gestor de colas.
La siguiente descripción modificará el canal CLOUD.ADMIN.SVRCONN, lo que permitirá al administrador conectarse de forma segura. De forma similar, alteraremos el canal CLOUD.APP.SVRCONN, que utilizarán las aplicaciones como, por ejemplo, los ejemplos de C o de JMS.
Necesitará acceso a las herramientas de MQ para su sistema operativo (por ejemplo, runmqakm). Estas herramientas forman parte de la instalación de MQ en Linux y en Windows, y están disponibles también desde hace poco en el Kit de herramientas de MacOS para desarrolladores. También se pueden descargar como un cliente MQ independiente en la página Descargas de MQ.
Documentación de referencia
Los siguientes enlaces suponen una práctica referencia para obtener información sobre cómo administrar un gestor de colas de MQ on Cloud utilizando las herramientas de administración estándar. Puede elegir su herramienta preferida y seguir las instrucciones de este documento.
Tareas en el gestor de colas de MQ on Cloud
Como se ha mencionado anteriormente, habilitar la seguridad en un canal de MQ requiere configurar una especificación de cifrado e intercambiar certificados públicos entre el gestor de colas y el cliente (y, para TLS mutuo, también entre el cliente y el gestor de colas). La configuración de la especificación de cifrado se puede realizar utilizando cualquiera de las tres herramientas de administración de MQ estándar. El método para cada uno se describe a continuación, elija su herramienta preferida y siga las instrucciones. Para acceder a las credenciales de usuario y al certificado, se necesita la consola del servicio MQ on Cloud.
Utilización de la consola del servicio MQ on Cloud para recopilar credenciales y certificados
-
Abra la consola del servicio MQ on Cloud y localice el gestor de colas.
-
Recopile las credenciales de usuario administrador Cuando seleccione por primera vez el separador Administración del gestor de colas, recibirá permisos de administrador. Anote el nombre de usuario y siga los pasos para descargar la clave de API (que será la contraseña que utilizará más tarde para conectarse).
-
Cree un usuario de aplicación para las aplicaciones JMS y C Seleccione el separador Credenciales de aplicación del gestor de colas y siga el proceso para añadir nuevas credenciales de aplicación. Guarde la clave de API generada, que es la contraseña que utilizará para conectar con las aplicaciones.
-
Descargue la descripción de CCDT de JSON del gestor de colas. Pulse el botón Información de conexión y siga las instrucciones para descargar la información de conexión en formato CCDT. Es posible que también desee descargar la versión de texto, que es más fácil de leer, y una fuente útil para saber el nombre y el url del gestor de colas.
El archivo de CCDT descargado debería ser similar al siguiente:
{ "channel": [ { "name": "CLOUD.ADMIN.SVRCONN", "clientConnection": { "connection": [ { "host": "myhost.cloud.ibm.com", "port": 31605 } ], "queueManager": "MQ_ONE" }, "transmissionSecurity": { "cipherSpecification": "ANY_TLS12_OR_HIGHER" }, "type": "clientConnection" }, { "name": "CLOUD.APP.SVRCONN", "clientConnection": { "connection": [ { "host": "myhost.cloud.ibm.com", "port": 31605 } ], "queueManager": "MQ_ONE" }, "transmissionSecurity": { "cipherSpecification": "ANY_TLS12_OR_HIGHER" }, "type": "clientConnection" } ] }
En las secciones siguientes se describe cómo comprobar que los canales ya tienen TLS configurado y, si no, configurarlos para aplicar la seguridad TLS.
Uso de la consola de MQ para modificar los canales
-
Vaya al separador Administración del gestor de colas.
-
Asegúrese de que está seleccionada la opción 'Consola de MQ' y pulse Iniciar la consola de MQ
-
Pulse Gestionar en el menú lateral para ver los objetos de MQ
-
Pulse en 'Comunicación' y después en 'Canales de app'
-
En la tabla, pulse en los 3 puntos de CLOUD.ADMIN.SVRCONN y seleccione 'Configuración'
-
Seleccione el botón Editar
-
Seleccione 'SSL' y en el campo CipherSpec SSL, compruebe que el valor es
ANY_TLS12_OR_HIGHER
. Este campo no es una lista, por lo que si desea elegir otra especificación de cifrado, consulte la documentación de IBM MQ sobre Habilitación de CipherSpecs -
Pulse Guardar
-
Repita los pasos anteriores para el canal CLOUD.APP.SVRCONN.
-
Ahora renueve la seguridad SSL del gestor de colas si ha alterado algún canal arriba:
- En la página del gestor de colas, seleccione Configuración.
- Seleccione el separador Seguridad.
- Seleccione los tres puntos y, a continuación, Renovar SSL
- Confirme pulsando Renovar
- En la página del gestor de colas, seleccione Configuración.
La especificación de cifrado está ahora configurada.
Uso de MQ Explorer para modificar los canales
-
Consulte Conectar con el gestor de colas utilizando MQ Explorer y siga los pasos indicados para conectar un MQ Explorer con el gestor de colas de MQ on Cloud.
-
En MQ Explorer - Navegador:
- Vaya a Gestores de colas, expanda el gestor de colas y pulse Canales.
- En el panel Canales, efectúe una doble pulsación en CLOUD.ADMIN.SVRCONN.
- En el panel de propiedades de CLOUD.ADMIN.SVRCONN, seleccione SSL.
- En el campo Especificación de cifrado SSL:, asegúrese de que se ha seleccionado una especificación de cifrado (
ANY_TLS12_OR_HIGHER
). - Pulse Aplicar y luego Aceptar.
-
Repita los pasos anteriores para el canal CLOUD.APP.SVRCONN
-
Si ha modificado la especificación de cifrado para algún canal, renueve la seguridad. En Gestores de colas, pulse con el botón derecho del ratón en el gestor de colas y seleccione Seguridad -> Renovar SSL.
-
Con esto se completa la habilitación del cifrado TLS en los canales de MQ. Si ya no va a necesitar MQ Explorer, puede desconectar la conexión con el gestor de colas pulsando con el botón derecho del ratón en el gestor de colas y seleccionando Desconectar.
Utilizar runmqsc para alterar los canales
-
Consulte Conectar con el gestor de colas utilizando runmqsc y siga los pasos indicados para conectar con su gestor de colas de MQ on Cloud. No salga del shell de mandatos runmqsc, ya que lo utilizará en los pasos siguientes.
-
Si el gestor de colas es 9.2.1 r1 o inferior, ejecute los mandatos siguientes para configurar los canales:
ALTER CHANNEL(CLOUD.ADMIN.SVRCONN) CHLTYPE(SVRCONN) SSLCAUTH(OPTIONAL) SSLCIPH(ANY_TLS12_OR_HIGHER) ALTER CHANNEL(CLOUD.APP.SVRCONN) CHLTYPE(SVRCONN) SSLCAUTH(OPTIONAL) SSLCIPH(ANY_TLS12_OR_HIGHER) REFRESH SECURITY TYPE(SSL) end
-
Con esto se completa la habilitación del cifrado TLS en los canales de MQ. Si ya no va a necesitar la cli de runmqsc, puede salir ahora.
Creación de un archivo de almacén de claves
Para permitir que el proceso del cliente confíe en el gestor de colas, debemos descargar el certificado público que presentará el gestor de colas.
Descargar el certificado público
Puede seguir los pasos siguientes para descargar el certificado público y crear el almacén de claves.
-
Pulse en el separador Almacén de claves e identifique el certificado que se ha marcado como "En uso: gestor de colas" (de forma predeterminada, es qmgrcert_yyyymm).
Crear un archivo de almacén de claves en formato PKCS12
Cree un almacén de claves de cliente y copie en el mismo la parte pública de la cadena de certificados del gestor de colas.
-
Cree un almacén de claves de cliente utilizando la herramienta 'runmqakm'.
runmqakm -keydb -create -db key.kdb -pw <your password> -type pkcs12 -expire 0 -stash
# In some operating systems you may have to update the file permissions to make the keystore readable chmod +rw key.kdb
-
Importe el certificado del gestor de colas en el almacén de claves (es el qmgrcert que ha descargado de la interfaz de usuario de MQ on Cloud anteriormente).
runmqakm -cert -add -db key.kdb -file qmgrcert_yyyymm.pem -label qmgrcert -stashed -type pkcs12 -format ascii
-
Compruebe que sus certificados se han añadido.
runmqakm -cert -list -db key.kdb
El parámetro de tipo arriba es pkcs12. En algunos ejemplos se sugiere utilizar kdb, pero el archivo key.kdb resultante no es legible para keytool, por lo que en este ejercicio se prefiere pkcs12.
Crear un archivo de almacén de claves en formato JKS en Windows y Linux
Cree un almacén de claves jks y copie la parte pública de la cadena de certificados del gestor de colas en el mismo.
-
Cree un almacén de claves de cliente utilizando la herramienta 'ikeycmd'.
ikeycmd -keydb -create -db key.jks -pw <your password> -type jks -expire 0 -stash
# In some operating systems you may have to update the file permissions to make the keystore readable chmod +rw key.jks
-
Importe el certificado del gestor de colas en el almacén de claves (es el qmgrcert que ha descargado de la interfaz de usuario de MQ on Cloud anteriormente).
ikeycmd -cert -add -db key.jks -file qmgrcert_yyyymm.pem -label qmgrcert -pw <your password>
-
Compruebe que sus certificados se han añadido.
ikeycmd -cert -list -db key.jks
Crear un archivo de almacén de claves en formato JKS en Mac OSX
Cree un almacén de claves jks y copie la parte pública de la cadena de certificados del gestor de colas en el mismo.
-
Cree un almacén de claves de cliente e importe el certificado.
keytool -importcert -file qmgrcert_yyyymm.pem -alias qmgrcert -keystore key.jks -storepass <your password>
-
Compruebe que sus certificados se han añadido.
keytool -list -keystore key.jks -storepass <your password>
Próximos pasos
Protección de la administración
El paso siguiente consiste en configurar el extremo del cliente de la comunicación de forma que confíe en el certificado del gestor de colas. Elija la herramienta de administración que desee utilizar y siga las instrucciones adecuadas a continuación.
Protección de las conexiones de aplicaciones
El siguiente paso consiste en configurar la conexión de la aplicación de forma que utilice el cifrado TLS al conectar con el gestor de colas.