Поддерживаемые версии SSL/TLS в зависимости от версии JDK
Elasticsearch полагается на реализацию SSL и TLS в вашем JDK.
Разные версии JDK поддерживают разные версии SSL, и это может повлиять на работу Elasticsearch.
Эта поддержка относится к работе с поставщиком JSSE по умолчанию в JDK. JVM, настроенные на использование поставщика безопасности FIPS 140-2, могут иметь пользовательскую реализацию TLS, которая может поддерживать версии протокола TLS, отличные от приведенного списка.
Проверьте заметки о выпуске вашего поставщика безопасности для получения информации о поддержке TLS.
-
SSLv3 - SSL v3 поддерживается во всех совместимых с Elasticsearch JDK, но по умолчанию отключен. См. Включение дополнительных версий SSL/TLS в вашем JDK.
-
TLSv1 - TLS v1.0 поддерживается во всех совместимых с Elasticsearch JDK. Некоторые более новые JDK, включая JDK, поставляемый с Elasticsearch, по умолчанию отключают TLS v1.0. См. Включение дополнительных версий SSL/TLS в вашем JDK.
-
TLSv1.1 - TLS v1.1 поддерживается во всех совместимых с Elasticsearch JDK. Некоторые более новые JDK, включая JDK, поставляемый с Elasticsearch, по умолчанию отключают TLS v1.1. См. Включение дополнительных версий SSL/TLS в вашем JDK.
-
TLSv1.2 - TLS v1.2 поддерживается во всех совместимых с Elasticsearch JDK. Он включён по умолчанию во всех поддерживаемых Elasticsearch JDK, включая поставляемый JDK.
-
TLSv1.3 -
TLS v1.3 поддерживается в JDK11 и более поздних версиях, а также в сборках JDK8, новее 8u261 (включая последние релизы каждой дистрибуции JDK8, поддерживаемых Elasticsearch). TLS v1.3 поддерживается и включён по умолчанию в JDK, поставляемом с Elasticsearch.
Хотя Elasticsearch поддерживает работу со старыми сборками JDK8 без TLS v1.3, рекомендуется обновить до версии JDK, включающей TLS v1.3, для лучшей поддержки и обновлений.
Включение дополнительных версий SSL/TLS в вашем JDK
Набор поддерживаемых версий SSL/TLS для JDK управляется файлом свойств безопасности Java, который входит в состав вашего JDK.
В этом файле конфигурации перечислены алгоритмы SSL/TLS, которые отключены в этом JDK. Выполните эти шаги, чтобы удалить версию TLS из этого списка и использовать её в вашем JDK.
- Найдите файл конфигурации для вашего JDK.
- Скопируйте значение параметра
jdk.tls.disabledAlgorithmsиз этого файла и добавьте его в пользовательский файл конфигурации в директории конфигурации Elasticsearch. - В пользовательском файле конфигурации удалите значение версии TLS, которую хотите использовать, из
jdk.tls.disabledAlgorithms. - Настройте Elasticsearch так, чтобы он передавал пользовательский системный параметр в JDK, чтобы использовать ваш пользовательский файл конфигурации.
Поиск файла конфигурации для вашего JDK
Для поставляемого с Elasticsearch JDK файл конфигурации находится в поддиректории домашнего каталога Elasticsearch ($ES_HOME):
- Linux:
$ES_HOME/jdk/conf/security/java.security - Windows:
$ES_HOME/jdk/conf/security/java.security - macOS:
$ES_HOME/jdk.app/Contents/Home/conf/security/java.security
Для JDK8 файл конфигурации находится в директории jre/lib/security установки Java. Если $JAVA_HOME указывает на домашний каталог JDK, который вы используете для запуска Elasticsearch, то файл конфигурации будет в:
-
$JAVA_HOME/jre/lib/security/java.security
Для JDK11 или более поздних версий файл конфигурации находится в директории conf/security установки Java. Если $JAVA_HOME указывает на домашний каталог JDK, который вы используете для запуска Elasticsearch, то файл конфигурации будет в:
-
$JAVA_HOME/conf/security/java.security
Копирование параметра disabledAlgorithms
В файле конфигурации JDK есть строка, начинающаяся с jdk.tls.disabledAlgorithms=. Этот параметр управляет отключенными в вашем JDK протоколами и алгоритмами. Значение этого параметра обычно занимает несколько строк.
Например, в OpenJDK 16 этот параметр:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL Создайте новый файл в вашей директории конфигурации Elasticsearch, назвав его es.java.security. Скопируйте параметр jdk.tls.disabledAlgorithms из файла стандартной конфигурации JDK в es.java.security. Другие параметры копировать не нужно.
Включение необходимых версий TLS
Отредактируйте файл es.java.security в вашей директории конфигурации Elasticsearch и измените параметр jdk.tls.disabledAlgorithms так, чтобы любые версии SSL или TLS, которые вы хотите использовать, больше не были в списке.
Например, чтобы включить TLSv1.1 в OpenJDK 16 (который использует параметры jdk.tls.disabledAlgorithms, показанные ранее), файл es.java.security должен содержать ранее отключённые алгоритмы TLS за исключением TLSv1.1:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL Включение вашей пользовательской конфигурации безопасности
Чтобы включить вашу пользовательскую политику безопасности, добавьте файл в директорию jvm.options.d в вашей директории конфигурации Elasticsearch.
Чтобы включить пользовательскую политику безопасности, создайте файл под названием java.security.options в директории jvm.options.d вашей директории конфигурации Elasticsearch со следующим содержимым:
-Djava.security.properties=/path/to/your/es.java.security
Включение версий TLS в Elasticsearch
Версии SSL/TLS могут быть включены и отключены в Elasticsearch через ssl.supported_protocols настройки.
Elasticsearch будет поддерживать только те версии TLS, которые включены в основном JDK. Если вы настроите ssl.supported_procotols так, чтобы включить версию TLS, которая не включена в вашем JDK, она будет проигнорирована.
Аналогично, версия TLS, включенная в вашем JDK, не будет использоваться, если она не настроена как одна из ssl.supported_protocols в Elasticsearch.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/jdk-tls-versions.html