Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Wskazanie nazwy serwera (SNI) umożliwia obsługę wielu serwerów backendu HTTPS z tego samego adresu IP i tego samego portu bez konieczności używania tego samego certyfikatu TLS na serwerach backendu. Jest to rozszerzenie protokołu TLS. Gdy włączony jest w kliencie, klient przekazuje nazwę hosta serwera backendu w ramach wstępnego uzgadniania połączenia TLS. Dzięki temu serwer TLS będzie mógł określić, którego certyfikatu TLS należy użyć do zweryfikowania żądania klienta.
Domyślnie SNI jest wyłączona w komponencie procesora wiadomości w Edge dla Private Cloud, aby zapewnić zgodność wsteczną z istniejącymi serwerami backendu. Jeśli serwer backendu jest skonfigurowany pod kątem obsługi SNI, musisz włączyć rozszerzenie SNI w komponencie procesora wiadomości. W przeciwnym razie żądania do interfejsu API przechodzące przez Apigee Edge będą kończyć się niepowodzeniem z powodu niepowodzeń uzgadniania połączenia TLS.
W tym dokumencie opisujemy, jak:
- Sprawdź, czy serwer backendu ma włączoną obsługę SNI
- Włącz SNI w procesorach wiadomości, aby komunikować się z serwerami backendu obsługującymi SNI
- W razie potrzeby wyłącz rozszerzenie SNI w procesorach wiadomości.
- Sprawdź, czy konfiguracja SNI została zaktualizowana w procesorach wiadomości
Zanim zaczniesz
- Jeśli nie znasz jeszcze usługi SNI, przeczytaj artykuł o używaniu SNI z usługą Edge.
- Jeśli nie wiesz, jak skonfigurować Edge w Private Cloud, przeczytaj artykuł o konfigurowaniu Edge.
Identyfikacja serwera z włączonym SNI
Ta sekcja zawiera informacje o tym, jak sprawdzić, czy serwer backendu ma włączony rozszerzenie SNI.
-
Wykonaj polecenie
openssl
i spróbuj połączyć się z odpowiednią nazwą hosta serwera (router brzegowy lub serwer backendu) bez przekazywania nazwy serwera, jak pokazano poniżej:openssl s_client -connect hostname:port
-
Możesz uzyskać certyfikaty i czasami może wystąpić błąd uzgadniania połączenia w poleceniu
openssl
, jak pokazano poniżej:
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
-
Wykonaj polecenie
openssl
i spróbuj połączyć się z odpowiednią nazwą hosta serwera (routerem brzegowym lub serwerem backendu), przesyłając nazwę serwera, jak pokazano poniżej:openssl s_client -connect hostname:port -servername hostname
- Jeśli w kroku 1 wystąpi błąd uzgadniania połączenia lub w kroku 1 i kroku 2 uzyskasz inne certyfikaty, będzie to oznaczać, że na określonym serwerze włączono rozszerzenie SNI.
- Jeśli chcesz to sprawdzić dla więcej niż 1 serwera backendu, musisz powtórzyć powyższe kroki w przypadku każdego serwera backendu.
Jeśli co najmniej 1 serwer backendu jest włączony, musisz włączyć SNI w komponencie procesora wiadomości w sposób opisany poniżej. W przeciwnym razie żądania do interfejsu API przesyłane przez Apigee Edge będą kończyć się niepowodzeniem z powodu niepowodzeń uzgadniania połączenia TLS.
Włącz SNI między procesorami wiadomości brzegowych a serwerem backendu
W tej sekcji dowiesz się, jak włączyć SNI między procesorem wiadomości brzegowych a serwerem backendu. SNI można włączyć za pomocą właściwości jsse.enableSNIExtension
w komponencie procesora wiadomości. Aby skonfigurować dowolną właściwość w procesorze wiadomości, użyj tokena zgodnie ze składnią opisaną w artykule Jak skonfigurować Edge.
Aby włączyć SNI w procesorach wiadomości, wykonaj te czynności:
Znajdź token dla usługi jsse.enableSNIExtension
Aby znaleźć token dla właściwości jsse.enableSNIExtension
, wykonaj te czynności:
-
Wyszukaj właściwość
jsse.enableSNIExtension
w katalogu źródłowym procesora wiadomości/opt/apigee/edge-message-processor/source
za pomocą tego polecenia:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Dane wyjściowe tego polecenia pokazują token właściwości
jsse.enableSNIExtension
podmiotu przetwarzającego wiadomości w ten sposób:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
Gdzie ciąg znaków między tagami
{T}{/T}
to nazwa tokena, który możesz ustawić w pliku.properties
podmiotu przetwarzającego wiadomości.Dlatego token właściwości
jsse.enableSNIExtension
wygląda tak:conf_system_jsse.enableSNIExtension
Włącz SNI w procesorze wiadomości
Poniżej znajdziesz instrukcje włączania SNI w komponencie Apigee Message Processor.
- Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli jeszcze nie istnieje, utwórz go.
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik za pomocą
vi
, wpisz to polecenie:vi /opt/apigee/customer/application/message-processor.properties
-
Dodaj do pliku właściwości wiersz w tym formacie:
conf_system_jsse.enableSNIExtension=true
- Zapisz zmiany.
-
Upewnij się, że ten plik właściwości należy do użytkownika
apigee
, tak jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Sprawdź, czy konfiguracja SNI została zaktualizowana w procesorze wiadomości.
- Jeśli masz więcej niż 1 procesor wiadomości, powtórz te kroki na wszystkich.
Wyłącz SNI między procesorami wiadomości brzegowych a serwerem backendu
Po włączeniu SNI zwykle nie powinny występować żadne problemy. Jeśli jednak po włączeniu SNI zauważysz problemy z połączeniem między procesorem wiadomości Edge a serwerem backendu, możesz wyłączyć SNI, wykonując poniższe czynności.
SNI można wyłączyć, ustawiając właściwość jsse.enableSNIExtension
z powrotem na false
w komponencie procesora wiadomości.
Wyłącz SNI w procesorach wiadomości
Poniższe kroki opisują, jak wyłączyć SNI w procesorach wiadomości Apigee.
-
Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli jeszcze nie istnieje, utwórz go.
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik za pomocą
vi
, wpisz to polecenie:vi /opt/apigee/customer/application/message-processor.properties
-
Jeśli wiersz
conf_system_jsse.enableSNIExtension=true
znajduje się w łańcuchu/opt/apigee/customer/application/message-processor.properties
, zmień go w ten sposób:conf_system_jsse.enableSNIExtension=false
- Zapisz zmiany.
-
Upewnij się, że ten plik właściwości należy do użytkownika
apigee
, tak jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Sprawdź, czy konfiguracja SNI została zaktualizowana w procesorze wiadomości.
- Jeśli masz więcej niż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.
Weryfikowanie konfiguracji SNI w procesorach wiadomości
Ta sekcja wyjaśnia, jak sprawdzić, czy konfiguracja SNI została zaktualizowana w procesorach wiadomości.
Mimo że używasz tokena conf_system_jsse.enableSNIExtension
do konfigurowania SNI w procesorze wiadomości, musisz sprawdzić, czy właściwość jsse.enableSNIExtension
została ustawiona na nową wartość.
-
Na komputerze procesora wiadomości wyszukaj właściwość
jsse.enableSNIExtension
w katalogu/opt/apigee/edge-message-processor/conf
i sprawdź, czy została ona ustawiona z nową wartością, jak pokazano poniżej:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Jeśli konfiguracja SNI zostanie zaktualizowana w procesorze wiadomości, powyższe polecenie wyświetli nową wartość w pliku
system.properties
.Przykładowy wynik z powyższego polecenia po włączeniu SNI w procesorze wiadomości wygląda tak:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Podobnie przykładowy wynik z powyższego polecenia po wyłączeniu SNI w procesorze wiadomości wygląda tak:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
W powyższych przykładowych danych wyjściowych zwróć uwagę, że właściwość
jsse.enableSNIExtension
została zaktualizowana do nowej wartościtrue
lubfalse
w parametrzesystem.properties
. Wskazuje to, że usługa SNI została włączona lub wyłączona w procesorze wiadomości. -
Jeśli nadal widzisz starą wartość właściwości
jsse.enableSNIExtension
, sprawdź, czy zostały wykonane wszystkie czynności opisane w odpowiedniej sekcji, aby poprawnie włączyć lub wyłączyć SNI. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie. - Jeśli nadal nie możesz włączyć lub wyłączyć SNI , skontaktuj się z zespołem pomocy Apigee Edge.