Konfigurowanie protokołu TLS 1.3 w ruchu na południe

Na tej stronie dowiesz się, jak skonfigurować protokół TLS 1.3 w systemach przetwarzania wiadomości Apigee na potrzeby ruchu skierowanego do strony południowej (ruchu między procesorem wiadomości a serwerem backendu).

Więcej informacji o funkcji TLS 1.3 w Javie znajdziesz na stronie Informacje o aktualizacji wersji JDK 8u261.

Procedura włączania protokołu TLS 1.3 zależy od używanej wersji Javy. Sprawdź w sekcji Sprawdzanie wersji Javy w procesorze wiadomości poniżej, aby dowiedzieć się, jaka wersja środowiska Java zainstalowana jest w tym procesorze.

TLS 1.3 i wersje Java

Funkcja TLS 1.3 została wprowadzona w następujących wersjach środowiska Java:

  • Oracle JDK 8u261
  • OpenJDK 8U272

Funkcja TLS 1.3 istnieje w następujących wersjach Javy, ale domyślnie nie jest włączona w rolach klienta:

  • Oracle JDK 8u261 lub nowsza, ale mniejsza niż Oracle JDK 8u341
  • OpenJDK 8u272 lub nowsza, ale mniejsza niż OpenJDK 8u352

Jeśli używasz jednej z tych wersji, musisz włączyć protokół TLS 1.3 zgodnie z opisem w sekcji Jak włączyć protokół TLS 1.3, gdy nie jest on domyślnie włączony.

Jeśli używasz jednej z poniższych wersji, protokół TLS 1.3 powinien być już domyślnie włączony w rolach klienta (przetwarzający wiadomości działa jako klient w przypadku połączeń TLS kierowanych południowo), więc nie musisz nic robić:

  • Oracle JDK 8u341 lub nowsza
  • OpenJDK w wersji 8u352 lub nowszej

Aby protokół TLS (wersja 1.3) działał, muszą być spełnione wszystkie te warunki:

  • Oprogramowanie Java w procesorze wiadomości musi obsługiwać protokół TLS w wersji 1.3.
  • W procesorze wiadomości należy włączyć protokół TLS 1.3 w języku Java.
  • W aplikacji procesora wiadomości należy włączyć protokół TLS 1.3.

Jak włączyć protokół TLS 1.3 w Javie, gdy nie jest on domyślnie włączony.

W tej sekcji dowiesz się, jak włączyć TLS 1.3, jeśli korzystasz z jednej z tych wersji Javy:

  • Oracle JDK 8u261 lub nowsza, ale mniejsza niż Oracle JDK 8u341
  • OpenJDK 8u272 lub nowsza, ale mniejsza niż OpenJDK 8u352

W procesorze wiadomości ustaw właściwość Java jdk.tls.client.protocols. Wartości są rozdzielane przecinkami i mogą zawierać co najmniej 1 z tych elementów: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 oraz SSLv3.

Na przykład ustawienie -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 włącza protokoły klienta TLSv1.2 i TLSv1.3.

Informacje o tym, jak ustawić właściwości JVM w komponencie Edge, znajdziesz w sekcji Zmienianie innych właściwości JVM.

Aby włączyć protokoły TLS 1, 1.1, 1.2 i 1.3:

  1. Ustaw tę konfigurację w pliku konfiguracji procesora wiadomości (/opt/apigee/customer/application/message-processor.properties):
       bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
  2. Ponownie uruchom procesor wiadomości.
>

Jak wyłączyć protokół TLS 1.3, gdy jest domyślnie włączony

Jeśli korzystasz z Oracle JDK w wersji 8u341 lub nowszej albo OpenJDK w wersji 8u352 lub nowszej, protokół TLSv1.3 jest domyślnie włączony dla klientów. Jeśli chcesz w takich przypadkach wyłączyć TLS 1.3, masz 2 możliwości:

  • Skonfiguruj SSLInfo na serwerze docelowym i sprawdź, czy protokół TLSv1.3 nie jest wymieniony na liście protokołów. Zobacz Elementy konfiguracji punktu końcowego TLS/SSL. Uwaga: jeśli w konfiguracji serwera docelowego nie określono żadnych protokołów, wszystkie protokoły obsługiwane przez Javę będą wysyłane jako opcje w trakcie uzgadniania połączenia klienta.
  • Wyłącz TLS 1.3 w procesorze wiadomości, całkowicie wyłączając protokół. Zobacz Ustawianie protokołu TLS w procesorze wiadomości.

Sprawdzanie wersji Javy w procesorze wiadomości

Aby sprawdzić wersję Java zainstalowaną w procesorze wiadomości, zaloguj się w węźle procesora wiadomości i wykonaj to polecenie:

java -version

Przykładowe dane wyjściowe poniżej pokazują, że zainstalowano OpenJDK 8u312.

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

Obsługiwane mechanizmy szyfrowania

Obecnie Java 8 obsługuje 2 mechanizmy szyfrowania TLS v1.3:

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

Za pomocą polecenia openssl możesz sprawdzić, czy serwer docelowy obsługuje protokół TLS w wersji 1.3 oraz co najmniej jeden z powyższych mechanizmów szyfrowania. Zwróć uwagę, że w tym przykładzie korzystamy z narzędzia openssl11, w którym włączony jest protokół TLS 1.3.

$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3