На этой странице рассказывается, как настроить TLS 1.3 в Message Processor Apigee для исходящего трафика (трафика между Message Processor и бэкенд-сервером).
Чтобы узнать больше о функции TLS 1.3 в Java, ознакомьтесь с примечаниями к выпуску обновления JDK 8u261.
Процедура включения TLS 1.3 зависит от используемой версии Java. Чтобы узнать, какая версия Java установлена в Message Processor, следуйте инструкциям в разделе Проверка версии Java в Message Processor ниже.
TLS 1.3 и версии Java
Функция TLS 1.3 была добавлена в следующие версии Java:
- Oracle JDK 8u261
- OpenJDK 8u272
В следующих версиях Java функция TLS v1.3 существует, но по умолчанию не включена в клиентских ролях:
- Oracle JDK 8u261 или более поздняя версия, но не Oracle JDK 8u341
- OpenJDK 8u272 или более поздней версии, но не OpenJDK 8u352
Если вы используете одну из этих версий, вам нужно включить TLS v1.3, как описано в разделе Как включить TLS v1.3, если он не включен по умолчанию.
Если вы используете одну из следующих версий, TLS v1.3 уже должен быть включен по умолчанию в клиентских ролях (Message Processor действует как клиент для исходящих TLS-подключений), поэтому вам не нужно предпринимать никаких действий:
- Oracle JDK 8u341 или более поздней версии
- OpenJDK 8u352 или более поздняя версия
Чтобы TLS версии 1.3 работал, должны выполняться следующие условия:
- Базовая версия Java на Message Processor должна поддерживать TLS 1.3.
- На Message Processor в Java должен быть включен протокол TLS версии 1.3.
- В приложении Message Processor должен быть включен протокол TLS версии 1.3.
Как включить TLS v1.3 в Java, если он не включен по умолчанию.
В этом разделе рассказывается, как включить TLS v1.3, если вы используете одну из следующих версий Java:
- Oracle JDK 8u261 или более поздняя версия, но не Oracle JDK 8u341
- OpenJDK 8u272 или более поздней версии, но не OpenJDK 8u352
В процессоре сообщений задайте свойство Java jdk.tls.client.protocols.
Значения разделяются запятыми и могут содержать один или несколько из следующих элементов: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 и SSLv3.
Например, если задать значение -Djdk.tls.client.protocols=TLSv1.2,TLSv1.3, будут включены клиентские протоколы TLSv1.2 и TLSv1.3.
Инструкции по настройке свойств JVM в компоненте Edge приведены в разделе Как изменить другие свойства JVM.
Чтобы включить протоколы TLS версий 1, 1.1, 1.2 и 1.3:
- Задайте следующие настройки в файле конфигурации обработчика сообщений (
/opt/apigee/customer/application/message-processor.properties):bin_setenv_ext_jvm_opts=-Djdk.tls.client.protocols=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
- Перезапустите Message Processor.
Как отключить TLS версии 1.3, если он включен по умолчанию
Если вы используете Oracle JDK 8u341 или более позднюю версию или OpenJDK 8u352 или более позднюю версию, TLSv1.3 включен по умолчанию для клиентов. Если вы хотите отключить TLS 1.3 в таких случаях, у вас есть два варианта:
- Настройте SSLInfo целевого сервера и убедитесь, что TLSv1.3 не указан в списке протоколов. Подробнее о конфигурации целевой конечной точки TLS/SSL… Примечание. Если в конфигурации целевого сервера не указаны протоколы, в качестве вариантов при рукопожатии клиента будут отправлены все протоколы, поддерживаемые Java.
- Отключите TLS v1.3 в обработчике сообщений, полностью отключив протокол. См. раздел Настройка протокола TLS в обработчике сообщений.
Как проверить версию Java в Message Processor
Чтобы проверить версию Java, установленную в Message Processor, войдите в узел Message Processor и выполните следующую команду:
java -version
В примере ниже показано, что установлена версия 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)
Поддерживаемые шифры
В настоящее время Java 8 поддерживает два шифра TLS 1.3:
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
Вы можете использовать openssl, чтобы проверить, поддерживает ли целевой сервер TLS версии 1.3 и хотя бы один из указанных выше шифров. Обратите внимание, что в этом примере используется утилита openssl11, в которой включен протокол TLS версии 1.3.
$ openssl11 s_client -ciphersuites "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" -connect target_host:target_port -tls1_3