SNI zwischen Edge Message Processor und dem Back-End-Server konfigurieren

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Mit Server Name Indication (SNI) können mehrere HTTPS-Back-End-Server über dieselbe IP-Adresse und denselben Port bereitgestellt werden, ohne dass diese Back-End-Server dasselbe TLS-Zertifikat verwenden müssen. Es ist eine Erweiterung des TLS-Protokolls. Wenn SNI auf einem Client aktiviert ist, übergibt der Client den Hostnamen des Back-End-Servers als Teil des anfänglichen TLS-Handshakes. Dadurch kann der TLS-Server bestimmen, mit welchem TLS-Zertifikat die Anfrage vom Client validiert werden soll.

Standardmäßig ist SNI in der Message Processor-Komponente in Edge für die Private Cloud deaktiviert, um die Abwärtskompatibilität mit den vorhandenen Back-End-Servern sicherzustellen. Wenn Ihr Back-End-Server für die Unterstützung von SNI konfiguriert ist, müssen Sie SNI in der Message Processor-Komponente aktivieren. Andernfalls schlagen API-Anfragen über Apigee Edge mit TLS-Handshakefehlern fehl.

In diesem Dokument wird Folgendes erläutert:

Hinweis

  • Wenn Sie mit SNI nicht vertraut sind, lesen Sie die Informationen unter SNI mit Edge verwenden.
  • Wenn Sie mit dem Konfigurieren von Edge in der Private Cloud nicht vertraut sind, lesen Sie Edge konfigurieren.

Identifikation des SNI-fähigen Servers

In diesem Abschnitt wird beschrieben, wie Sie feststellen können, ob ein Back-End-Server SNI aktiviert ist.

  1. Führen Sie den Befehl openssl aus und versuchen Sie, eine Verbindung zum entsprechenden Server-Hostnamen (Edge Router oder Back-End-Server) herzustellen, ohne den Servernamen zu übergeben, wie unten gezeigt:
    openssl s_client -connect hostname:port
    
  2. Sie erhalten die Zertifikate und manchmal sehen Sie einen Handshakefehler im Befehl openssl, wie unten gezeigt:
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
    
  3. Führen Sie den Befehl openssl aus und versuchen Sie, eine Verbindung zum entsprechenden Server-Hostnamen (Edge-Router oder Back-End-Server) herzustellen. Dazu müssen Sie den Servernamen wie unten gezeigt übergeben:
    openssl s_client -connect hostname:port -servername hostname
    
  4. Wenn in Schritt 1 ein Handshakefehler auftritt oder Sie in Schritt 1 und Schritt 2 unterschiedliche Zertifikate erhalten, bedeutet dies, dass der angegebene Server SNI aktiviert ist.
  5. Wenn Sie dies für mehr als einen Back-End-Server überprüfen möchten, müssen Sie die oben genannten Schritte für jeden Back-End-Server wiederholen.

Wenn Sie feststellen, dass ein oder mehrere Back-End-Server mit SNI aktiviert sind, müssen Sie SNI auf der Message Processor-Komponente aktivieren, wie unten erläutert. Andernfalls schlagen API-Anfragen über Apigee Edge mit TLS-Handshakefehlern fehl.

SNI zwischen Edge-Nachrichtenprozessoren und Back-End-Server aktivieren

In diesem Abschnitt wird erläutert, wie Sie SNI zwischen dem Edge Message Processor und dem Back-End-Server aktivieren. SNI kann über die Eigenschaft jsse.enableSNIExtension auf der Message Processor-Komponente aktiviert werden. Verwenden Sie das Token gemäß der in Edge konfigurieren beschriebenen Syntax, um eine Eigenschaft auf dem Message Processor zu konfigurieren.

Führen Sie die folgenden Schritte aus, um SNI auf den Message Processorn zu aktivieren:

  1. Token für die Property „jsse.enableSNIExtension“ suchen
  2. SNI auf Message Processor aktivieren

Token für die Property jsse.enableSNIExtension suchen

In den folgenden Schritten wird beschrieben, wie Sie das Token für das Attribut jsse.enableSNIExtension finden:

  1. Suchen Sie im Nachrichtenprozessor-Quellverzeichnis /opt/apigee/edge-message-processor/source mit dem folgenden Befehl nach der Eigenschaft jsse.enableSNIExtension:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. Die Ausgabe dieses Befehls zeigt das Token für die Eigenschaft jsse.enableSNIExtension von Message Processor so:
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
    

    Dabei ist der String zwischen den {T}{/T}-Tags der Name des Tokens, das Sie in der Datei .properties des Message Processor festlegen können.

    Daher lautet das Token für das Attribut jsse.enableSNIExtension so:

    conf_system_jsse.enableSNIExtension
    

SNI auf dem Message Processor aktivieren

In den folgenden Schritten wird beschrieben, wie Sie SNI auf der Apigee Message Processor-Komponente aktivieren.

  1. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor. Wenn sie noch nicht vorhanden ist, erstellen Sie sie.
    /opt/apigee/customer/application/message-processor.properties
    

    Wenn Sie die Datei z. B. mit vi öffnen möchten, geben Sie den folgenden Befehl ein:

    vi /opt/apigee/customer/application/message-processor.properties
    

  2. Fügen Sie der Eigenschaftendatei eine Zeile im folgenden Format hinzu:
    conf_system_jsse.enableSNIExtension=true
    
  3. Speichern Sie die Änderungen.
  4. Achten Sie darauf, dass der Inhaber dieser Property-Datei der Nutzer apigee ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Starten Sie den Message Processor wie unten gezeigt neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Prüfen Sie, ob die SNI-Konfiguration auf dem Message Processor aktualisiert wurde.
  7. Wenn Sie mehr als einen Message Processor haben, wiederholen Sie diese Schritte auf allen Message Processorn.

SNI zwischen Edge-Nachrichtenprozessoren und Back-End-Server deaktivieren

Im Allgemeinen sollten nach der Aktivierung von SNI keine Probleme auftreten. Wenn jedoch nach der Aktivierung von SNI Verbindungsprobleme zwischen dem Edge Message Processor und dem Back-End-Server auftreten, können Sie SNI jederzeit deaktivieren, indem Sie die folgenden Schritte ausführen.

SNI kann deaktiviert werden, indem die Eigenschaft jsse.enableSNIExtension in der Message Processor-Komponente auf false zurückgesetzt wird.

SNI auf den Message Processorn deaktivieren

In den folgenden Schritten wird beschrieben, wie Sie SNI auf den Apigee Message Processors deaktivieren.

  1. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor. Wenn sie noch nicht vorhanden ist, erstellen Sie sie.
    /opt/apigee/customer/application/message-processor.properties
    

    Wenn Sie die Datei z. B. mit vi öffnen möchten, geben Sie den folgenden Befehl ein:

    vi /opt/apigee/customer/application/message-processor.properties
    

  2. Wenn die Zeile conf_system_jsse.enableSNIExtension=true in /opt/apigee/customer/application/message-processor.properties vorhanden ist, ändern Sie sie so:
    conf_system_jsse.enableSNIExtension=false
    
  3. Speichern Sie die Änderungen.
  4. Achten Sie darauf, dass der Inhaber dieser Property-Datei der Nutzer apigee ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Starten Sie den Message Processor wie unten gezeigt neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Prüfen Sie, ob die SNI-Konfiguration auf dem Message Processor aktualisiert wurde.
  7. Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die obigen Schritte für alle Message Processor.

Überprüfen der SNI-Konfiguration auf den Message Processorn

In diesem Abschnitt wird erläutert, wie Sie überprüfen können, ob die SNI-Konfiguration auf den Message Processorn aktualisiert wurde.

Obwohl Sie das Token conf_system_jsse.enableSNIExtension verwenden, um SNI auf dem Message Processor zu konfigurieren, müssen Sie überprüfen, ob die tatsächliche Eigenschaft jsse.enableSNIExtension mit dem neuen Wert festgelegt wurde.

  1. Suchen Sie auf dem Message Processor-Computer im Verzeichnis /opt/apigee/edge-message-processor/conf nach dem Attribut jsse.enableSNIExtension und prüfen Sie, ob es mit dem neuen Wert festgelegt wurde (siehe unten):
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. Wenn die SNI-Konfiguration erfolgreich auf dem Message Processor aktualisiert wurde, zeigt der obige Befehl den neuen Wert in der Datei system.properties an.

    Das Beispielergebnis des obigen Befehls, nachdem Sie SNI auf dem Message Processor aktiviert haben, sieht wie folgt aus:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
    

    Analog dazu sieht das Beispielergebnis des obigen Befehls wie folgt aus, nachdem Sie SNI auf dem Message Processor deaktiviert haben:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
    

    In der obigen Beispielausgabe wurde das Attribut jsse.enableSNIExtension auf den neuen Wert true oder false in system.properties aktualisiert. Dies zeigt an, dass SNI auf dem Message Processor aktiviert oder deaktiviert wurde.

  3. Wenn noch der alte Wert für das Attribut jsse.enableSNIExtension angezeigt wird, prüfen Sie, ob Sie alle Schritte im entsprechenden Abschnitt ausgeführt haben, um SNI richtig zu aktivieren oder zu deaktivieren. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  4. Wenn Sie SNI immer noch nicht aktivieren/deaktivieren können , wenden Sie sich an den Apigee Edge-Support.