Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Rozszerzenie SNI (Server Name Indication) umożliwia obsługę wielu serwerów backendu HTTPS z tego samego adresu IP i portu bez konieczności używania przez te serwery tego samego certyfikatu TLS. Jest to rozszerzenie protokołu TLS. Gdy rozszerzenie SNI jest włączone na kliencie, klient przekazuje nazwę hosta serwera backendu w ramach początkowego uzgadniania TLS. Dzięki temu serwer TLS może określić, którego certyfikatu TLS należy użyć do zweryfikowania żądania od klienta.
Domyślnie rozszerzenie SNI jest wyłączone w komponencie Message Processor w Edge for Private Cloud aby zapewnić zgodność wsteczną z dotychczasowymi serwerami backendu. Jeśli serwer backendu jest skonfigurowany do obsługi rozszerzenia SNI, musisz włączyć to rozszerzenie w komponencie procesora komunikatów. W przeciwnym razie żądania API przechodzące przez Apigee Edge będą kończyć się niepowodzeniem z powodu błędów uzgadniania TLS.
Z tego dokumentu dowiesz się, jak:
- sprawdzić, czy serwer backendu obsługuje rozszerzenie SNI;
- włączyć rozszerzenie SNI w procesorach wiadomości, aby umożliwić komunikację z serwerami backendu które obsługują to rozszerzenie;
- w razie potrzeby wyłączyć rozszerzenie SNI w procesorach wiadomości;
- sprawdzić, czy konfiguracja rozszerzenia SNI została pomyślnie zaktualizowana w procesorach wiadomości.
Zanim zaczniesz
- Jeśli nie znasz rozszerzenia SNI, przeczytaj artykuł Używanie rozszerzenia SNI w Edge.
- Jeśli nie znasz konfiguracji Edge w Private Cloud, przeczytaj artykuł Konfigurowanie Edge.
Identyfikowanie serwera obsługującego rozszerzenie SNI
W tej sekcji opisujemy, jak sprawdzić, czy serwer backendu obsługuje rozszerzenie SNI.
-
Uruchom polecenie
openssli spróbuj połączyć się z odpowiednią nazwą hosta serwera (router Edge lub serwer backendu) bez przekazywania nazwy serwera, jak pokazano poniżej:openssl s_client -connect hostname:port
-
Możesz otrzymać certyfikaty, a czasami możesz zaobserwować niepowodzenie uzgadniania w
opensslpoleceniu, 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
-
Uruchom polecenie
openssli spróbuj połączyć się z odpowiednią nazwą hosta serwera (router Edge lub serwer backendu) przekazują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 lub w kroku 1 i 2 otrzymasz różne certyfikaty, oznacza to, że określony serwer obsługuje rozszerzenie SNI.
- Jeśli chcesz sprawdzić to na więcej niż 1 serwerze backendu, musisz powtórzyć powyższe kroki w przypadku każdego serwera backendu.
Jeśli okaże się, że masz co najmniej 1 serwer backendu, który obsługuje rozszerzenie SNI, musisz włączyć to rozszerzenie w komponencie Message Processor, jak opisano poniżej. W przeciwnym razie żądania API przechodzące przez Apigee Edge będą kończyć się niepowodzeniem z powodu błędów uzgadniania TLS.
Włączanie rozszerzenia SNI między procesorami wiadomości Edge a serwerem backendu
W tej sekcji opisano, jak włączyć rozszerzenie SNI między procesorem komunikatów Edge a serwerem backendu. Rozszerzenie SNI można włączyć za pomocą właściwości jsse.enableSNIExtension w
komponencie Message Processor. Aby skonfigurować dowolną właściwość w procesorze komunikatów, użyj tokena zgodnie ze składnią opisaną w artykule Konfigurowanie Edge.
Aby włączyć rozszerzenie SNI w procesorach wiadomości, wykonaj te czynności:
Znajdowanie tokena właściwości jsse.enableSNIExtension
Poniższe kroki opisują, jak znaleźć token właściwości
jsse.enableSNIExtension:
-
Wyszukaj właściwość
jsse.enableSNIExtensionw katalogu źródłowym procesora komunikatów/opt/apigee/edge-message-processor/sourceza pomocą tego polecenia:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Wynik tego polecenia pokazuje token właściwości procesora wiadomości
jsse.enableSNIExtensionw ten sposób:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}Ciąg znaków między tagami
{T}{/T}to nazwa tokena, który możesz ustawić w pliku.propertiesprocesora wiadomości.Token właściwości
jsse.enableSNIExtensionjest więc taki:conf_system_jsse.enableSNIExtension
Włączanie rozszerzenia SNI w procesorze komunikatów
Poniższe kroki opisują, jak włączyć rozszerzenie SNI w komponencie procesora komunikatów Apigee.
- Na komputerze z procesorem komunikatów otwórz w edytorze ten plik. Jeśli plik 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 właścicielem tego pliku właściwości jest użytkownik
apigee, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Sprawdź, czy konfiguracja rozszerzenia SNI została zaktualizowana w procesorze komunikatów.
- Jeśli masz więcej niż 1 procesor wiadomości, powtórz te kroki na wszystkich procesorach wiadomości.
Wyłączanie rozszerzenia SNI między procesorami wiadomości Edge a serwerem backendu
Po włączeniu rozszerzenia SNI nie powinny występować żadne problemy. Jeśli jednak po włączeniu rozszerzenia SNI zauważysz problemy z połączeniem między procesorem komunikatów Edge a serwerem backendu, możesz w każdej chwili wyłączyć rozszerzenie SNI, wykonując te czynności.
Rozszerzenie SNI można wyłączyć, ustawiając właściwość jsse.enableSNIExtension z powrotem na false w komponencie procesora komunikatów.
Wyłączanie rozszerzenia SNI w procesorach wiadomości
Poniższe kroki opisują, jak wyłączyć rozszerzenie SNI w procesorach wiadomości Apigee.
-
Na komputerze z procesorem komunikatów otwórz w edytorze ten plik. Jeśli plik 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=trueznajduje się w/opt/apigee/customer/application/message-processor.properties, zmodyfikuj go w ten sposób:conf_system_jsse.enableSNIExtension=false
- Zapisz zmiany.
-
Upewnij się, że właścicielem tego pliku właściwości jest użytkownik
apigee, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Sprawdź, czy konfiguracja rozszerzenia SNI została zaktualizowana w procesorze komunikatów.
- Jeśli masz więcej niż 1 procesor komunikatów, powtórz powyższe kroki na wszystkich procesorach komunikatów.
Sprawdzanie konfiguracji rozszerzenia SNI w procesorach wiadomości
W tej sekcji opisujemy, jak sprawdzić, czy konfiguracja rozszerzenia SNI została pomyślnie zaktualizowana w procesorach wiadomości.
Mimo że do skonfigurowania rozszerzenia SNI w procesorze komunikatów używasz tokena conf_system_jsse.enableSNIExtension, musisz sprawdzić, czy rzeczywista właściwość jsse.enableSNIExtension została ustawiona na nową wartość.
-
Na komputerze z procesorem komunikatów wyszukaj właściwość
jsse.enableSNIExtensionw katalogu/opt/apigee/edge-message-processor/confi sprawdź, czy została ustawiona na nową wartość, jak pokazano poniżej:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
Jeśli konfiguracja SNI została pomyślnie zaktualizowana w procesorze komunikatów, wówczas
powyższe polecenie wyświetli nową wartość w pliku
system.properties.Przykładowy wynik powyższego polecenia po włączeniu rozszerzenia SNI w procesorze komunikatów jest następujący:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Podobnie przykładowy wynik powyższego polecenia po wyłączeniu rozszerzenia SNI w procesorze komunikatów:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
W powyższym przykładzie zwróć uwagę, że właściwość
jsse.enableSNIExtensionzostała zaktualizowana do nowej wartościtruelubfalsewsystem.properties. Oznacza to, że rozszerzenie SNI zostało pomyślnie włączone lub wyłączone w procesorze komunikatów. -
Jeśli nadal widzisz starą wartość właściwości
jsse.enableSNIExtension, to sprawdź, czy zostały wykonane wszystkie kroki opisane w odpowiedniej sekcji, aby prawidłowo włączyć lub wyłączyć rozszerzenie SNI. Jeśli pominiesz jakiś krok, powtórz wszystkie kroki. - Jeśli nadal nie możesz włączyć lub wyłączyć rozszerzenia SNI , skontaktuj się z zespołem pomocy Apigee Edge.