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:
- 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
- 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