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:
- Prüfen, ob ein Back-End-Server SNI aktiviert ist
- Aktivieren Sie SNI auf den Message Processorn, um mit Back-End-Servern zu kommunizieren, die SNI unterstützen.
- Deaktivieren Sie SNI auf den Message Processorn bei Bedarf.
- Überprüfen Sie, ob die SNI-Konfiguration erfolgreich auf den Message Processorn aktualisiert wurde.
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.
-
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
-
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
-
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
- 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.
- 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:
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:
-
Suchen Sie im Nachrichtenprozessor-Quellverzeichnis
/opt/apigee/edge-message-processor/source
mit dem folgenden Befehl nach der Eigenschaftjsse.enableSNIExtension
:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
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.
- Ö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
-
Fügen Sie der Eigenschaftendatei eine Zeile im folgenden Format hinzu:
conf_system_jsse.enableSNIExtension=true
- Speichern Sie die Änderungen.
-
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
-
Starten Sie den Message Processor wie unten gezeigt neu:
/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 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.
-
Ö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
-
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
- Speichern Sie die Änderungen.
-
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
-
Starten Sie den Message Processor wie unten gezeigt neu:
/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 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.
-
Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message-processor/conf
nach dem Attributjsse.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
-
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 Werttrue
oderfalse
insystem.properties
aktualisiert. Dies zeigt an, dass SNI auf dem Message Processor aktiviert oder deaktiviert wurde. -
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. - Wenn Sie SNI immer noch nicht aktivieren/deaktivieren können , wenden Sie sich an den Apigee Edge-Support.