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

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:

Zanim zaczniesz

Identyfikowanie serwera obsługującego rozszerzenie SNI

W tej sekcji opisujemy, jak sprawdzić, czy serwer backendu obsługuje rozszerzenie SNI.

  1. Uruchom polecenie openssl i 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
  2. Możesz otrzymać certyfikaty, a czasami możesz zaobserwować niepowodzenie uzgadniania w openssl poleceniu, 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. Uruchom polecenie openssl i 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
  4. 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.
  5. 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:

  1. Znajdź token właściwości jsse.enableSNIExtension.
  2. Włącz SNI w procesorze komunikatów.

Znajdowanie tokena właściwości jsse.enableSNIExtension

Poniższe kroki opisują, jak znaleźć token właściwości jsse.enableSNIExtension:

  1. Wyszukaj właściwość jsse.enableSNIExtension w katalogu źródłowym procesora komunikatów /opt/apigee/edge-message-processor/source za pomocą tego polecenia:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. Wynik tego polecenia pokazuje token właściwości procesora wiadomości jsse.enableSNIExtension w 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 .properties procesora wiadomości.

    Token właściwości jsse.enableSNIExtension jest 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.

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

  1. 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
  2. Jeśli wiersz conf_system_jsse.enableSNIExtension=true znajduje się w /opt/apigee/customer/application/message-processor.properties, zmodyfikuj go w ten sposób:
    conf_system_jsse.enableSNIExtension=false
  3. Zapisz zmiany.
  4. 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
  5. Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Sprawdź, czy konfiguracja rozszerzenia SNI została zaktualizowana w procesorze komunikatów.
  7. 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ść.

  1. Na komputerze z procesorem komunikatów wyszukaj właściwość jsse.enableSNIExtension w katalogu /opt/apigee/edge-message-processor/conf i sprawdź, czy została ustawiona na nową wartość, jak pokazano poniżej:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. 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.enableSNIExtension została zaktualizowana do nowej wartości true lub false w system.properties. Oznacza to, że rozszerzenie SNI zostało pomyślnie włączone lub wyłączone w procesorze komunikatów.

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