SSL (HTTPS) を使用するよう HTTPRequest ノードを構成する

このタスク・トピックでは、HTTPRequest ノードが HTTP over SSL を使用して他のアプリケーションと通信するよう構成する方法を説明します。 タスクは Windows システムに必要なステップを示していますが、他のプラットフォームでもほとんど同一のタスクが必要です。 HTTPRequest のタスクを完了するためには、HTTPS サーバー・アプリケーションが必要です。 単純化を図るため、ここに示す詳細事項は SSL 用の HTTPInput ノードをサーバー・アプリケーションとして使用する場合の詳細事項だけです。しかし、他のサーバー・アプリケーションを使用するときにも、同じ詳細事項が当てはまります。

証明書を cacerts ファイルに追加する

呼び出されるサーバー・アプリケーションの証明書を、WebSphere Message Broker の cacerts ファイルに追加しなければなりません。 これは JRE セキュリティー・ディレクトリーにあります。 Windows で cacerts ファイルを探すには、以下のステップを行います。
  1. 「スタート」 > 「IBM WebSphere Message Brokers 6.0」 > 「コマンド・コンソール」を選択して、ブローカー・コマンド・コンソールをオープンします。
  2. コマンド・コンソールで、以下のコマンドを入力し、cacerts ファイルがあるディレクトリーに変更します。
    cd "%MQSI_FILEPATH%¥jre¥lib¥security"

cacerts ファイルを変更するには、keytool コマンドを使用しなければなりません。

証明書を cacerts ファイルにインポートする
  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
    cacerts ファイルのデフォルトのパスワード。 このパスワードはできるだけ早く変更してください。 keytool を使用してパスワードを変更できます。
別の鍵ストアから証明書を抽出する
  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 と呼ばれ、メッセージ・ブローカー・ユーザーのホーム・ディレクトリーに配置されています。
    keystore file
    鍵ストア・ファイルの完全修飾名。このファイルは通常、メッセージ・ブローカー・ユーザーのホーム・ディレクトリーに配置されています。
    changeit
    cacerts ファイルのデフォルトのパスワード。 このパスワードはできるだけ早く変更してください。 keytool を使用してパスワードを変更できます。
適正な証明書が cacerts にインポートされていることを確認するのは重要です。 適正な証明書とは、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. 例のテストも含めて、SSL (HTTPS) を使用するよう HTTPInput および HTTPReply ノードを構成するに示されているすべての指示に従います。
  2. HTTPRequest メッセージ・フローをデプロイします。
  3. メッセージを MQSeries キュー HTTPS.IN1 に入れます。 メッセージが出力キューに表示されるはずです。 障害が起きた場合には、ローカル・エラー・ログ (Windows ではイベント・ログ) にエラーが表示されます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ap12235_