Na tej stronie dowiesz się, jak skonfigurować TLS 1.3 w procesorach komunikatów Apigee na potrzeby ruchu wychodzącego (ruchu między procesorem komunikatów a serwerem backendu).
Więcej informacji o funkcji TLS 1.3 w języku Java znajdziesz w informacjach o wersji aktualizacji JDK 8u261.
Procedura włączania protokołu TLS 1.3 zależy od używanej wersji Javy. Aby dowiedzieć się, jaka wersja Javy jest zainstalowana w procesorze komunikatów, zapoznaj się z sekcją Sprawdzanie wersji Javy w procesorze komunikatów poniżej.
TLS 1.3 i wersje Javy
Funkcja TLS 1.3 została wprowadzona w tych wersjach Javy:
- Oracle JDK 8u261
- OpenJDK 8u272
W tych wersjach Javy funkcja TLS 1.3 jest dostępna, ale nie jest domyślnie włączona w rolach klienta:
- Oracle JDK 8u261 lub nowszy, ale starszy niż Oracle JDK 8u341
- OpenJDK 8u272 lub nowszy, ale starszy niż OpenJDK 8u352
Jeśli używasz jednej z tych wersji, musisz włączyć protokół TLS w wersji 1.3 zgodnie z opisem w artykule Jak włączyć protokół TLS w wersji 1.3, gdy nie jest on domyślnie włączony.
Jeśli używasz jednej z tych wersji, protokół TLS w wersji 1.3 powinien być już domyślnie włączony w rolach klienta (procesor komunikatów działa jako klient w przypadku połączeń TLS southbound), więc nie musisz nic robić:
- Oracle JDK 8u341 lub nowszy,
- OpenJDK 8u352 lub nowszy,
Aby protokół TLS w wersji 1.3 działał, muszą być spełnione wszystkie te warunki:
- Podstawowa wersja Javy w procesorze komunikatów musi obsługiwać TLS 1.3.
- Protokół TLS 1.3 musi być włączony w języku Java w procesorze komunikatów.
- W aplikacji procesora komunikatów musi być włączony protokół TLS w wersji 1.3.
Jak włączyć protokół TLS w wersji 1.3 w języku Java, gdy nie jest on domyślnie włączony.
W tej sekcji wyjaśniamy, jak włączyć TLS w wersji 1.3, jeśli używasz jednej z tych wersji Javy:
- Oracle JDK 8u261 lub nowszy, ale starszy niż Oracle JDK 8u341
- OpenJDK 8u272 lub nowszy, ale starszy niż OpenJDK 8u352
W procesorze komunikatów ustaw właściwość Java jdk.tls.client.protocols.
Wartości są rozdzielone przecinkami i mogą zawierać co najmniej jedną z tych wartości: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 i SSLv3.
Na przykład ustawienie -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 włącza protokoły klienta TLSv1.2 i TLSv1.3.
Aby dowiedzieć się, jak ustawić właściwości JVM w komponencie Edge, przeczytaj artykuł o zmienianiu innych właściwości JVM.
Aby włączyć protokoły TLS w wersji 1, 1.1, 1.2 i 1.3:
- W pliku konfiguracji procesora komunikatów (
/opt/apigee/customer/application/message-processor.properties) ustaw tę konfigurację:bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- Uruchom ponownie procesor komunikatów.
Jak wyłączyć protokół TLS 1.3, gdy jest domyślnie włączony
Jeśli używasz Oracle JDK 8u341 lub nowszego albo OpenJDK 8u352 lub nowszego, protokół TLSv1.3 jest domyślnie włączony dla klientów. Jeśli w takich przypadkach chcesz wyłączyć TLS v1.3, masz 2 możliwości:
- Skonfiguruj SSLInfo serwera docelowego i upewnij się, że protokół TLSv1.3 nie jest wymieniony na liście protokołów. Zobacz Elementy konfiguracji TLS/SSL TargetEndpoint. Uwaga: jeśli w konfiguracji serwera docelowego nie określono żadnych protokołów, wszystkie protokoły obsługiwane przez Javę zostaną wysłane jako opcje w uzgadnianiu połączenia klienta.
- Wyłącz protokół TLS w wersji 1.3 w procesorze komunikatów, całkowicie wyłączając protokół. Zobacz Ustawianie protokołu TLS w procesorze komunikatów.
Sprawdzanie wersji Javy w procesorze komunikatów
Aby sprawdzić wersję Javy zainstalowaną w procesorze komunikatów, zaloguj się w węźle procesora komunikatów i wykonaj to polecenie:
java -version
Przykładowe dane wyjściowe poniżej pokazują, że zainstalowana jest wersja 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 szyfry TLS 1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
Możesz użyć openssl, aby sprawdzić, czy serwer docelowy obsługuje protokół TLS w wersji 1.3 i co najmniej 1 z powyższych szyfrów. Pamiętaj, że w tym przykładzie używamy narzędzia openssl11, które ma włączony protokół TLS w wersji 1.3.
$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3