Configuración de un nodo HTTPRequest para utilizar SSL (HTTPS)

Inicio del cambioConfigure el nodo HTTPRequest para comunicarse con otras aplicaciones utilicen HTTP sobre SSL, añadiendo certificados al archivo cacerts y creando un flujo de mensajes para realizar peticiones HTTP.Fin del cambio

Inicio del cambio

Este tema describe los pasos que debe realizar cuando configure un nodo HTTPRequest en un sistema Windows. Los pasos que tiene que seguir en otros sistemas operativos son casi idénticos.

Para habilitar un nodo HTTPRequest para comunicarse mediante HTTP sobre SSL, es necesario tener una aplicación de servidor HTTPS. La información que se proporciona en este tema muestra cómo utilizar el nodo HTTPInput para SSL como la aplicación de servidor, aunque los mismos detalles son aplicables cuando se utilice cualquier otras aplicación de servidor.

Fin del cambio

Adición de certificados al archivo cacerts

Debe añadir el certificado de la aplicación de servidor que se debe llamar (y ser de confianza) al archivo cacerts para WebSphere Message Broker. Este archivo es el almacén de confianza predeterminado del intermediario y está situado en el directorio de seguridad JRE del intermediario. Para buscar el archivo cacerts en Windows:
  1. Pulse Inicio > IBM WebSphere Message Brokers 6.0 > Consola de mandatos para abrir una consola de mandatos de intermediario.
  2. Inicio del cambioEn la consola de mandatos, escriba el mandato siguiente para cambiar al directorio donde está almacenado el archivo cacerts, por ejemplo:
    cd "%MQSI_FILEPATH%\jre\lib\security"
    o
    cd "%MQSI_FILEPATH%\jre15\lib\security"
    Fin del cambio
Inicio del cambioEn los sistemas UNIX, el archivo cacerts está almacenado en el directorio siguiente:
/opt/IBM/mqsi/6.1/jre15/ppc64/lib/security
o
$MQSI_FILEPATH/jre15/ppc64/lib/security
Fin del cambio

Importación de un certificado al archivo cacerts

Utilice el mandato keytool para modificar el archivo cacerts:

  1. Pulse Inicio > IBM WebSphere Message Brokers 6.0 > Consola de mandatos para abrir una consola de mandatos de intermediario.
  2. Inicio del cambioEn la consola de mandatos, escriba el mandato siguiente:
    "%MQSI_FILEPATH%\jre\bin\keytool" -import -alias mykey
    -file nombre de archivo de certificados -keystore cacerts
    -storepass changeit
    donde:
    nombre de archivo de certificados
    es el nombre totalmente calificado del archivo de certificados. Este archivo se suele encontrar en el directorio inicial del usuario de Message Broker.
    changeit
    es la contraseña por omisión para el archivo cacerts. Puede utilizar el mandato keytool para cambiar la contraseña pero, debido a que no es una propiedad configurable del intermediario, éste siempre intenta acceder al archivo cacerts utilizando la contraseña predeterminada changeit.

    Si tiene que cambiar la contraseña de cacerts, o si debe utilizar una almacén de confianza distinto, puede pasar la información a la JVM (Java Virtual Machine) del intermediario estableciendo la siguiente variable de entorno:

    En Windows, AIX y Linux:

    IBM_JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<vía_acceso_almacén_confianza>/<nombre_archivo_almacén_confianza>
    -Djavax.net.ssl.trustStorePassword=<contraseña_almacén_confianza>

    En Solaris y HP-UX:

    _JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<vía_acceso_almacén_confianza>/<nombre_archivo_almacén_confianza>
    -Djavax.net.ssl.trustStorePassword=<contraseña_almacén_confianza>

    Sea cauteloso al utilizar esta variable de entorno porque, si el valor no es válido, los grupos de ejecución del intermediario podrían no ser capaces de crear su JVM y, en consecuencia, no pueden iniciarse correctamente. No utilice la variable de entorno IBM_JAVA_OPTIONS (o _JAVA_OPTIONS) si también utiliza la autenticación SSL con nodos Real-time, o con WebSphere MQ Java Client.

    Fin del cambio
Extracción de un certificado de otro almacén de claves
  1. Pulse Inicio > IBM WebSphere Message Brokers 6.0 > Consola de mandatos para abrir una consola de mandatos de intermediario.
  2. Inicio del cambioEn la consola de mandatos, escriba el mandato siguiente:
    "%MQSI_FILEPATH%\jre\bin\keytool" -export -alias miclave
    -file nombre de archivo de certificados -keystore archivo de almacén de claves
    -storepass contraseña
    donde
    nombre de archivo de certificados
    es el nombre totalmente calificado del archivo de certificado. Este archivo suele tener la extensión .keystore y se encuentra en el directorio inicial del usuario de intermediario.
    archivo de almacén de claves
    es el nombre totalmente calificado del archivo de almacén de claves. Este archivo se suele encontrar en el directorio inicial del usuario de intermediario.
    miclave
    es el nombre de alias de la entrada del almacén de claves (certificado).
    changeit
    es la contraseña para el archivo de almacén de claves.
    Fin del cambio
Debe importar el certificado correcto (que el servidor HTTP utiliza para presentar sus credenciales de autenticación) al archivo cacerts.

Creación de un flujo de mensajes para realizar peticiones HTTPS

El siguiente flujo de mensajes crea un flujo de mensajes genérico para convertir un mensaje de WebSphere MQ en una petición HTTP:

  1. Cree un flujo de mensajes con los nodos MQInput->HTTPRequest->Compute->MQOutput.
  2. En el nodo MQInput, establezca el nombre de cola en HTTPS.IN1 y cree la cola de WebSphere MQ.
  3. En el nodo MQOutput, establezca el nombre de cola en HTTPS.OUT1 y cree la cola de WebSphere MQ.
  4. En el nodo HTTPRequest, establezca el URL de servicio web para que apunte al servidor HTTP al que se debe llamar. Para llamar al nodo HTTPInput, utilice https://localhost:7083/testHTTPS.
  5. En el separador Propiedades avanzadas del nodo HTTPRequest, establezca la propiedad Ubicación de mensaje de respuesta en el árbol en OutputRoot.BLOB.
  6. En el nodo Compute, añada el siguiente código ESQL:
    CREATE COMPUTE MODULE test_https_Compute
        CREATE FUNCTION Main() RETURNS BOOLEAN
        BEGIN
            -- CALL CopyMessageHeaders();
            CALL CopyEntireMessage();
            set OutputRoot.HTTPResponseHeader = null;
            RETURN TRUE;
        END;
    
        CREATE PROCEDURE CopyMessageHeaders() BEGIN
            DECLARE I INTEGER;
            DECLARE J INTEGER;
            SET I = 1;
            SET J = CARDINALITY(InputRoot.*[]);
            WHILE I < J DO
                SET OutputRoot.*[I] = InputRoot.*[I];
                SET I = I + 1;
            END WHILE;
        END;
    
        CREATE PROCEDURE CopyEntireMessage() BEGIN
            SET OutputRoot = InputRoot;
        END;
    END MODULE;

Ahora el flujo de mensajes está preparado para desplegarse en el intermediario y probarse.

Prueba del ejemplo

Para probar que el ejemplo funciona, realice los pasos siguientes:

  1. Siga las instrucciones de Configuración de los nodos HTTPInput y HTTPReply para utilizar SSL (HTTPS), incluida la prueba del ejemplo.
  2. Despliegue el flujo de mensajes HTTPRequest.
  3. Ponga un mensaje en la cola de WebSphere MQ HTTPS.IN1. Si el proceso es satisfactorio, aparecerá un mensaje en la cola de salida. Si falla, aparecerá un error en las anotaciones de errores locales (que es el registro de sucesos de Windows).
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última actualización : 2009-02-16 13:55:56

ap12235_