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

変更の始まり証明書を cacerts ファイルに追加して、HTTP 要求を作成するためのメッセージ・フローを作成することにより、 HTTPRequest ノードが HTTP over SSL を使用して他のアプリケーションと通信するように構成します。変更の終わり

変更の始まり

このトピックでは、Windows® システム上で HTTPRequest ノードを構成するときに従う必要のあるステップを説明します。その他のオペレーティング・システムで実行しなければならない手順もほぼ同じです。

HTTPRequest ノードが HTTP over SSL を使用して通信できるようにするには、 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"
    または
    cd "%MQSI_FILEPATH%¥jre15¥lib¥security"
    変更の終わり
変更の始まりUNIX® システム上では、cacerts ファイルは以下のディレクトリーに保管されます。
/opt/IBM/mqsi/6.1/jre15/ppc64/lib/security
または
$MQSI_FILEPATH/jre15/ppc64/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
    -storepass changeit
    それぞれの意味は以下のとおりです。
    name of certificate file
    証明書ファイルの完全修飾名。このファイルは通常、メッセージ・ブローカー・ユーザーのホーム・ディレクトリーに配置されています。
    changeit
    cacerts ファイルのデフォルトのパスワード。keytool コマンドを使用してパスワードを変更できますが、それはブローカーの構成可能プロパティーではありません。そのため、ブローカーは常にデフォルトのパスワード changeit を使用して cacerts ファイルへのアクセスを試行します。

    cacerts パスワードを変更する必要がある場合、または別のトラスト・ストアを使用する必要がある場合は、 以下の環境変数を設定して情報をブローカーの Java 仮想マシン (JVM) に渡すことができます。

    Windows、AIX®、および Linux® の場合:

    IBM_JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<trustStore_path>/<trustStore_filename>
    -Djavax.net.ssl.trustStorePassword=<trustStore_password>

    Solaris および HP-UX の場合:

    _JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<trustStore_path>/<trustStore_filename>
    -Djavax.net.ssl.trustStorePassword=<trustStore_password>

    この環境変数は、設定が無効の場合はブローカーの実行グループが JVM を作成できないために正常に始動できなくなることがあるので、この環境変数を使用する際には注意してください。 SSL 認証を Real-time ノードまたは WebSphere MQ Java™ Client でも使用している場合には、 IBM_JAVA_OPTIONS (または _JAVA_OPTIONS) 環境変数を使用しないでください。

    変更の終わり
別の鍵ストアから証明書を抽出する
  1. 「スタート」 > 「IBM WebSphere Message Brokers 6.0」 > 「コマンド・コンソール」をクリックして、ブローカー・コマンド・コンソールをオープンします。
  2. 変更の始まりコマンド・コンソールで、以下のコマンドを入力します。
    "%MQSI_FILEPATH%¥jre¥bin¥keytool" -export -alias mykey
    -file name of certificate file -keystore keystore file
    -storepass password
    ここで、
    name of certificate file
    証明書ファイルの完全修飾名。このファイルは通常、拡張子 .keystore が付き、ブローカー・ユーザーのホーム・ディレクトリーに配置されます。
    keystore file
    鍵ストア・ファイルの完全修飾名。このファイルは通常、ブローカー・ユーザーのホーム・ディレクトリーに配置されています。
    mykey
    鍵ストア項目 (証明書) の別名。
    changeit
    鍵ストア・ファイルのパスワード。
    変更の終わり
正しい証明書 (HTTP サーバーが認証資格情報を示すために使用するもの) を cacerts ファイルにインポートする必要があります。

HTTPS 要求を作成するメッセージ・フローを作成する

以下のメッセージ・フローは、WebSphere MQ メッセージを HTTPRequest に変換する汎用メッセージ・フローを作成します。

  1. MQInput->HTTPRequest->Compute->MQOutput の各ノードを持つメッセージ・フローを作成します。
  2. MQInput ノードでは、キュー名を HTTPS.IN1 に設定して WebSphere MQ キューを作成します。
  3. MQOutput ノードでは、キュー名を HTTPS.OUT1 に設定して WebSphere MQ キューを作成します。
  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. メッセージを WebSphere MQ キュー HTTPS.IN1 に入れます。 成功した場合は、出力キューにメッセージが表示されます。プロセスが失敗した場合は、ローカル・エラー・ログ (Windowsではイベント・ログ) にエラーが表示されます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:23

ap12235_