Konfigurowanie rozszerzenia SNI między serwerem Edge, a serwerem backendu

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:

Zanim zaczniesz

Identyfikacja serwera z włączonym SNI

Ta sekcja zawiera informacje o tym, jak sprawdzić, czy serwer backendu ma włączony rozszerzenie SNI.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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.
  5. 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:

  1. Znajdowanie tokena dla właściwości jsse.enableSNIExtension
  2. Włączanie SNI w procesorze wiadomości

Znajdź token dla usługi jsse.enableSNIExtension

Aby znaleźć token dla właściwości jsse.enableSNIExtension, wykonaj te czynności:

  1. 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
    
  2. 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.

  1. 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
    

  2. Dodaj do pliku właściwości wiersz w tym formacie:
    conf_system_jsse.enableSNIExtension=true
    
  3. Zapisz zmiany.
  4. 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
    
  5. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Sprawdź, czy konfiguracja SNI została zaktualizowana w procesorze wiadomości.
  7. 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.

  1. 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
    

  2. 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
    
  3. Zapisz zmiany.
  4. 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
    
  5. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Sprawdź, czy konfiguracja SNI została zaktualizowana w procesorze wiadomości.
  7. 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ść.

  1. 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
    
  2. 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ści true lub false w parametrze system.properties. Wskazuje to, że usługa SNI została włączona lub wyłączona w procesorze wiadomości.

  3. 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.
  4. Jeśli nadal nie możesz włączyć lub wyłączyć SNI , skontaktuj się z zespołem pomocy Apigee Edge.