Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
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 ersten TLS-Handshakes. So kann der TLS-Server ermitteln, welches TLS-Zertifikat zur Validierung der Anfrage des Clients verwendet werden soll.
Standardmäßig ist SNI in der Message Processor-Komponente in Edge for Private Cloud deaktiviert, um die Abwärtskompatibilität mit den vorhandenen Back-End-Servern zu gewährleisten. 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 die API-Anfragen, die über Apigee Edge laufen, mit TLS-Handshake-Fehlern fehl.
In diesem Dokument wird Folgendes erläutert:
- Prüfen, ob ein Back-End-Server SNI-fähig ist
- SNI auf den Message Processors aktivieren, um mit Back-End -Servern zu kommunizieren, die SNI unterstützen
- SNI auf den Message Processors deaktivieren, falls erforderlich
- Prüfen, ob die SNI-Konfiguration erfolgreich aktualisiert wurde auf den Message Processors
Hinweis
- Wenn Sie mit SNI nicht vertraut sind, lesen Sie SNI mit Edge verwenden.
- Wenn Sie mit der Konfiguration von Edge in Private Cloud nicht vertraut sind, lesen Sie Edge konfigurieren.
SNI-fähigen Server identifizieren
In diesem Abschnitt wird beschrieben, wie Sie prüfen, ob ein Back-End-Server SNI-fähig ist.
-
Führen Sie den
opensslBefehl aus und versuchen Sie, eine Verbindung zum entsprechenden Serverhostnamen (Edge Router oder Back-End-Server) ohne den Servernamen zu übergeben, wie unten gezeigt:openssl s_client -connect hostname:port
-
Möglicherweise erhalten Sie die Zertifikate und manchmal kann es zu einem Handshake-Fehler im
opensslBefehl kommen, 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
-
Führen Sie den
opensslBefehl aus und versuchen Sie, eine Verbindung zum entsprechenden Server Hostnamen (Edge Router oder Back-End-Server) herzustellen, indem Sie den Servernamen übergeben , wie unten gezeigt:openssl s_client -connect hostname:port -servername hostname
- Wenn Sie in Schritt 1 einen Handshake-Fehler erhalten oder in Schritt 1 und Schritt 2 unterschiedliche Zertifikate erhalten, ist der angegebene Server SNI-fähig.
- Wenn Sie dies für mehr als einen Back-End-Server prüfen möchten, müssen Sie die oben genannten Schritte für jeden Back-End-Server wiederholen.
Wenn Sie feststellen, dass einer oder mehrere Back-End-Server SNI-fähig sind, müssen Sie SNI in der Message Processor-Komponente aktivieren, wie unten beschrieben. Andernfalls schlagen die API Anfragen, die über Apigee Edge laufen, mit TLS-Handshake-Fehlern fehl.
SNI zwischen Edge Message Processors und Back-End-Server aktivieren
In diesem Abschnitt wird beschrieben, wie Sie SNI zwischen dem Edge Message Processor und dem Back-End
Server aktivieren. SNI kann über das Attribut jsse.enableSNIExtension in
der Message Processor-Komponente aktiviert werden. Verwenden Sie zum Konfigurieren eines Attributs im Message Processor
das Token gemäß der Syntax unter
Edge konfigurieren.
So aktivieren Sie SNI auf den Message Processors:
Token für das Attribut jsse.enableSNIExtension suchen
In den folgenden Schritten wird beschrieben, wie Sie das Token für das
jsse.enableSNIExtension Attribut suchen:
-
Suchen Sie mit dem folgenden Befehl im Quellverzeichnis des Message Processor
/opt/apigee/edge-message-processor/sourcenach dem Attributjsse.enableSNIExtension:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Die Ausgabe dieses Befehls zeigt das Token für das Attribut
jsse.enableSNIExtensiondes Message Processor so:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Dabei ist die String zwischen den Tags
{T}{/T}der Name des Tokens, das Sie in der Datei.propertiesdes Message Processor festlegen können.Das Token für das Attribut
jsse.enableSNIExtensionist also:conf_system_jsse.enableSNIExtension
SNI auf dem Message Processor aktivieren
In den folgenden Schritten wird beschrieben, wie Sie SNI in der Apigee Message Processor-Komponente aktivieren.
- Ö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
Geben Sie beispielsweise den folgenden Befehl ein, um die Datei mit
vizu öffnen:vi /opt/apigee/customer/application/message-processor.properties
-
Fügen Sie der Attributdatei eine Zeile im folgenden Format hinzu:
conf_system_jsse.enableSNIExtension=true
- Speichern Sie die Änderungen.
-
Prüfen Sie, ob der Nutzer
apigeeEigentümer dieser Attributdatei ist, wie unten gezeigt:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Starten Sie den Message Processor neu, wie unten gezeigt:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Prüfen Sie, ob die SNI-Konfiguration auf dem Message Processor aktualisiert wurde.
- Wenn Sie mehr als einen Message Processor haben, wiederholen Sie diese Schritte auf allen den Message Processors.
SNI zwischen Edge Message Processors und Back-End-Server deaktivieren
Nach dem Aktivieren von SNI sollten keine Probleme auftreten. Wenn nach dem Aktivieren von SNI jedoch Verbindungsprobleme zwischen dem Edge Message Processor und dem Back-End-Server auftreten, können Sie SNI jederzeit deaktivieren. Führen Sie dazu die folgenden Schritte aus.
SNI kann deaktiviert werden, indem Sie das Attribut jsse.enableSNIExtension
in der Message Processor-Komponente wieder auf false setzen.
SNI auf den Message Processors deaktivieren
In den folgenden Schritten wird beschrieben, wie Sie SNI auf den Apigee Message Processors deaktivieren.
-
Ö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
Geben Sie beispielsweise den folgenden Befehl ein, um die Datei mit
vizu öffnen:vi /opt/apigee/customer/application/message-processor.properties
-
Wenn die Zeile
conf_system_jsse.enableSNIExtension=truein/opt/apigee/customer/application/message-processor.propertiesvorhanden ist, ändern Sie sie so:conf_system_jsse.enableSNIExtension=false
- Speichern Sie die Änderungen.
-
Prüfen Sie, ob der Nutzer
apigeeEigentümer dieser Attributdatei ist, wie unten gezeigt:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Starten Sie den Message Processor neu, wie unten gezeigt:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Prüfen Sie, ob die SNI-Konfiguration auf dem Message Processor aktualisiert wurde.
- Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die oben genannten Schritte auf allen den Message Processors.
SNI-Konfiguration auf den Message Processors prüfen
In diesem Abschnitt wird beschrieben, wie Sie prüfen, ob die SNI-Konfiguration auf den Message Processors erfolgreich aktualisiert wurde.
Obwohl Sie das Token conf_system_jsse.enableSNIExtension verwenden, um
SNI auf dem Message Processor zu konfigurieren, müssen Sie prüfen, ob das tatsächliche Attribut
jsse.enableSNIExtension mit dem neuen Wert festgelegt wurde.
-
Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message-processor/confnach dem Attributjsse.enableSNIExtensionund prüfen Sie, ob es mit dem neuen Wert festgelegt wurde, wie unten gezeigt:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Wenn die SNI-Konfiguration auf dem Message Processor erfolgreich aktualisiert wurde, zeigt der
obige Befehl den neuen Wert in der
system.propertiesDatei an.Das Beispielergebnis des obigen Befehls, nachdem Sie SNI auf dem Message Processor aktiviert haben, sieht so aus:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Das Beispielergebnis des obigen Befehls, nachdem Sie SNI auf dem Message Processor deaktiviert haben, sieht so aus:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Beachten Sie in der obigen Beispielausgabe, dass das Attribut
jsse.enableSNIExtensioninsystem.propertiesauf den neuen Werttrueoderfalseaktualisiert wurde. Das bedeutet, dass SNI auf dem Message Processor erfolgreich aktiviert oder deaktiviert wurde. -
Wenn Sie immer noch den alten Wert für das Attribut
jsse.enableSNIExtensionsehen, dann prüfen Sie, ob Sie alle Schritte im entsprechenden Abschnitt ausgeführt haben, um SNI korrekt zu aktivieren oder zu deaktivieren. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal korrekt. - Wenn Sie SNI immer noch nicht aktivieren oder deaktivieren können , wenden Sie sich an den Apigee Edge-Support.