配置 HTTPRequest 节点以使用 SSL(HTTPS)

本任务主题说明如何配置 HTTPRequest 节点,以便使用基于 SSL 的 HTTP 与其他应用程序通信。其中包含 Windows 系统所需的步骤,但其他任何平台所需的任务也基本相同。要完成 HTTPRequest 任务,需要 HTTPS 服务器应用程序。为了简便,此处提供的唯一详细信息适用于将 SSL 的 HTTPInput 节点用作服务器应用程序。但是,当使用任何其他服务器应用程序时,相同的详细信息也适用。

将证书添加到自签证书文件

要调用的服务器应用程序的证书必须被添加到 WebSphere Message Broker 的自签证书文件中。它位于 JRE 安全目录中。要查找 Windows 上的自签证书文件,请完成以下步骤:
  1. 选择开始 > IBM WebSphere Message Brokers 6.0 > 命令控制台以打开代理命令控制台。
  2. 在命令控制台中,输入以下命令将目录更改为自签证书文件所在的位置:
    cd "%MQSI_FILEPATH%\jre\lib\security"

要修改自签证书文件,必须使用密钥工具命令。

将证书导入自签证书文件
  1. 选择开始 > IBM WebSphere Message Brokers 6.0 > 命令控制台以打开代理命令控制台。
  2. 在命令控制台中,输入下列命令:
    "%MQSI_FILEPATH%\jre\bin\keytool" -import -alias mykey
    -file name of certificate file -keystore cacerts
    -keypass changeit
    name of certificate file
    证书文件的标准名称。此文件通常位于消息代理用户主目录中。
    changeit
    自签证书文件的缺省密码。您应该尽快更改此密码。可以使用密钥工具更改密码。
从其他密钥库抽取证书
  1. 选择开始 > IBM WebSphere Message Brokers 6.0 > 命令控制台以打开代理命令控制台。
  2. 在命令控制台中,输入下列命令:
    "%MQSI_FILEPATH%\jre\bin\keytool" -export -alias tomcat
    -file name of certificate file -keystore keystore file
    -keypass changeit
    name of certificate file
    证书文件的标准名称。此文件通常命名为 .keystore,并且位于消息代理用户主目录。
    密钥库文件
    密钥库文件的标准名称。此文件通常位于消息代理用户主目录中。
    changeit
    自签证书文件的缺省密码。您应该尽快更改此密码。可以使用密钥工具更改密码。
确保已将正确的证书导入自签证书非常重要。正确的证书为 HTTP 服务器应该使用的证书。

创建消息流以发出 HTTPS 请求

以下消息流可创建类属消息流,将 WebSphere MQ 消息转换为 HTTPRequest:

  1. 使用节点创建消息流 MQInput->HTTPRequest->Compute->MQOutput。
  2. 对于 MQInput 节点,设置 HTTPS.IN1 的队列名称并创建 MQSeries 队列。
  3. 对于 MQOutput 节点,设置 HTTPS.OUT1 的队列名称并创建 MQSeries 队列。
  4. 对于 HTTPRequest 节点,将 Web 服务 URL 设置为指向要调用的 HTTP 服务器。对于调用 HTTPInput 任务,使用 https://localhost:7083/testHTTPS
  5. 对于 HTTPRequest 节点,设置高级属性以将 OutputRoot.BLOB 用作树中的响应位置
  6. 在 compute 节点中添加以下 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;

现在,消息流已为部署到代理和测试准备就绪。

测试示例

要测试示例是否有效,完成以下步骤

  1. 按照配置 HTTPInput 和 HTTPReply 节点以使用 SSL(HTTPS)中给定的所有指示信息操作,包括测试示例。
  2. 部署 HTTPRequest 消息流。
  3. 将消息放入 MQSeries 队列 HTTPS.IN1。 输出队列中将显示消息。否则,本地错误日志(Windows 中的事件日志)中将出现错误。
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ap12235_