HTTPRequest-Knoten für die Verwendung von SSL (HTTPS) konfigurieren

Beginn der ÄnderungKonfigurieren Sie den HTTPRequest-Knoten für die Kommunikation mit anderen Anwendungen, die HTTP over SSL verwenden, indem Sie Zertifikate zur cacerts-Datei hinzufügen und einen Nachrichtenfluss zur Durchführung von HTTP-Anforderungen erstellen. Ende der Änderung

Beginn der Änderung

In diesem Abschnitt werden die Schritte beschrieben, die Sie ausführen müssen, wenn Sie einen HTTPRequest-Knoten auf einem Windows-System konfigurieren. Die Schritte, die Sie auf anderen Betriebssystemen ausführen müssen, sind mit diesen Schritten fast identisch.

Damit ein HTTPRequest-Knoten unter Verwendung von HTTP over SSL kommunizieren kann, ist eine HTTPS-Serveranwendung erforderlich. Die Informationen in diesem Abschnitt verdeutlichen die Verwendung des HTTPInput-Knotens für SSL als Serveranwendung, sie gelten jedoch auch für alle anderen Serveranwendungen.

Ende der Änderung

Zertifikate zur cacerts-Datei hinzufügen

Sie müssen das Zertifikat für die Serveranwendung, die aufgerufen (und anerkannt) werden muss, zur cacerts-Datei für WebSphere Message Broker hinzufügen. Diese Datei ist der standardmäßige Truststore für den Broker und befindet sich im JRE-Sicherheitsverzeichnis des Brokers. So finden Sie die cacerts-Datei unter Windows:
  1. Klicken Sie nacheinander auf Start > IBM WebSphere Message Brokers 6.0 > Befehlskonsole, um eine Befehlskonsole für den Broker zu öffnen.
  2. Beginn der ÄnderungGeben Sie in der Befehlskonsole folgenden Befehl ein, um in das Verzeichnis mit der cacerts-Datei zu wechseln. Beispiel:
    cd "%MQSI_FILEPATH%\jre\lib\security"
    oder
    cd "%MQSI_FILEPATH%\jre15\lib\security"
    Ende der Änderung
Beginn der ÄnderungAuf UNIX-Systemen ist die cacerts-Datei im folgenden Verzeichnis gespeichert:
/opt/IBM/mqsi/6.1/jre15/ppc64/lib/security
oder
$MQSI_FILEPATH/jre15/ppc64/lib/security
Ende der Änderung

Importieren Sie ein Zertifikat in die cacerts-Datei

Ändern Sie die cacerts-Datei mit dem Befehls keytool:

  1. Klicken Sie nacheinander auf Start > IBM WebSphere Message Brokers 6.0 > Befehlskonsole, um eine Befehlskonsole für den Broker zu öffnen.
  2. Beginn der ÄnderungGeben Sie in der Befehlskonsole folgenden Befehl ein:
    "%MQSI_FILEPATH%\jre\bin\keytool" -import -alias mykey
    -file Name der Zertifikatsdatei -keystore cacerts
    -storepass changeit
    Dabei ist:
    Name der Zertifikatsdatei
    Der vollständig qualifizierte Name der Zertifikatsdatei. Normalerweise befindet sich die Datei im Ausgangsverzeichnis des Nachrichtenbrokerbenutzers.
    changeit
    Das Standardkennwort für die cacerts-Datei. Mit dem Befehl keytool können Sie das Kennwort ändern. Da es sich jedoch um keine konfigurierbare Eigenschaft des Brokers handelt, versucht der Broker immer, mit dem Standardkennwort changeit auf die cacerts-Datei zuzugreifen.

    Wenn Sie das cacerts-Kennwort ändern müssen oder einen anderen Truststore verwenden müssen, können Sie die Informationen an die Java Virtual Machine (JVM) des Brokers übergeben, indem Sie folgende Umgebungsvariable festlegen:

    Unter Windows, AIX und Linux:

    IBM_JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<Pfad_des_gesicherten_Speichers>/<Dateiname_des_gesicherten_Speichers>
    -Djavax.net.ssl.trustStorePassword=<Kennwort_des_gesicherten_Speichers>

    Unter Solaris und HP-UX:

    _JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<Pfad_des_gesicherten_Speichers>/<Dateiname_des_gesicherten_Speichers>
    -Djavax.net.ssl.trustStorePassword=<Kennwort_des_gesicherten_Speichers>

    Seien Sie bei der Verwendung dieser Umgebungsvariable vorsichtig. Wenn die Einstellung ungültig ist, können die Ausführungsgruppen des Brokers ihre JVM möglicherweise nicht erstellen und können deshalb nicht erfolgreich gestartet werden. Verwenden Sie die Umgebungsvariable IBM_JAVA_OPTIONS (oder _JAVA_OPTIONS) nicht, wenn Sie auch die SSL-Authentifizierung bei Echtzeitknoten oder beim WebSphere MQ Java-Client verwenden.

    Ende der Änderung
Ein Zertifikat aus einem anderen Schlüsselspeicher extrahieren
  1. Klicken Sie nacheinander auf Start > IBM WebSphere Message Brokers 6.0 > Befehlskonsole, um eine Befehlskonsole für den Broker zu öffnen.
  2. Beginn der ÄnderungGeben Sie in der Befehlskonsole folgenden Befehl ein:
    "%MQSI_FILEPATH%\jre\bin\keytool" -export -alias mykey
    -file Name der Zertifikatsdatei -keystore Schlüsselspeicherdatei
    -storepass password
    Dabei gilt Folgendes:
    Name der Zertifikatsdatei
    Der vollständig qualifizierte Name der Zertifikatsdatei. Diese Datei hat normalerweise die Erweiterung .keystore und befindet sich im Ausgangsverzeichnis des Brokerbenutzers.
    Schlüsselspeicherdatei
    Der vollständig qualifizierte Name der Schlüsselspeicherdatei. Diese Datei befindet sich normalerweise im Ausgangsverzeichnis des Brokerbenutzers.
    mykey
    Der Aliasname für den Schlüsselspeichereintrag (Zertifikat).
    changeit
    Das Kennwort für die Schlüsselspeicherdatei.
    Ende der Änderung
Sie müssen das richtige Zertifikat (das der HTTP-Server für die Präsentation seiner Authentifizierungsnachweise verwendet) in die cacerts-Datei importieren.

Nachrichtenfluss für HTTPS-Anforderungen erstellen

Der folgende Nachrichtenfluss erstellt einen generischen Nachrichtenfluss für die Konvertierung von WebSphere MQ-Nachrichten in HTTP-Anforderungen:

  1. Erstellen Sie einen Nachrichtenfluss mit den Knoten MQInput->HTTPRequest->Compute->MQOutput.
  2. Setzen Sie den Warteschlangennamen auf dem MQInput-Knoten auf 'HTTPS.IN1' und erstellen Sie die WebSphere MQ-Warteschlange.
  3. Setzen Sie den Warteschlangennamen auf dem MQOutput-Knoten auf 'HTTPS.OUT1' und erstellen Sie die WebSphere MQ-Warteschlange.
  4. Legen Sie die Web-Service-URL auf dem HTTPRequest-Knoten so fest, dass sie auf den aufzurufenden HTTP-Server zeigt. Verwenden Sie für den Aufruf des HTTPInput-Knotens https://localhost:7083/testHTTPS.
  5. Setzen Sie die Eigenschaft Position der Antwortnachricht in Baumstruktur auf der Registerkarte 'Erweitert' des HTTPRequest-Knotens auf OutputRoot.BLOB.
  6. Fügen Sie auf dem Computeknoten folgenden ESQL-Code hinzu:
    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;

Der Nachrichtenfluss kann nun im Broker implementiert und getestet werden.

Ihr Beispiel testen

Führen Sie folgende Schritte aus, um die Funktion des Beispiels zu testen.

  1. Befolgen Sie die Anweisungen im Abschnitt HTTPEmpfangs- und HTTPAntwortknoten für die Verwendung von SSL (HTTPS) konfigurieren und testen Sie das Beispiel.
  2. Implementieren Sie den Nachrichtenfluss HTTPRequest.
  3. Stellen Sie eine Nachricht in die WebSphere MQ-Warteschlange 'HTTPS.IN1'. Wenn der Vorgang erfolgreich war, wird in der Ausgabewarteschlange eine Nachricht angezeigt. Schlägt der Prozess fehl, wird eine Fehlernachricht im lokalen Fehlerprotokoll (unter Windows im Ereignisprotokoll) angezeigt.
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:29:46

ap12235_