Установка версии TLS для кластера ADH
В данной статье показано, как установить определенную версию TLS для SSL-коммуникаций в кластере ADH, а также приведены инструкции для проверки текущей версии TLS.
На момент релиза ADH 2.1.10.b1 минимально поддерживаемая версия TLS — TLSv1.2, что обусловлено использованием Java 8. TLSv1.3 поддерживается в JDK11+ и сборках JDK8 8u261 или более поздних (JRE 1.8.0_261-b12+).
Выбор версии TLS
Вы можете выбрать желаемую версию TLS для всего ADH кластера с помощью параметра TLS Version, который доступен при выполнении действия Enable SSL.
На момент релиза ADH 2.1.10.b1 единственной доступной версией является TLSv1.2
.
Настройки TLS для отдельных ADH сервисов
Также вы можете указать версию TLS для отдельных сервисов ADH. Список конфигурационных файлов и параметров, отвечающих за использование TLS, представлен в таблице ниже.
Сервис | Файл конфигурации | Параметр | Значение по умолчанию | Описание |
---|---|---|---|---|
Hive |
/etc/hive/conf/hive-site.xml |
hive.ssl.protocol.blacklist |
SSLv2Hello,SSLv2,SSLv3,TLSv1,TLSv1.1 |
Отключает указанные TLS-протоколы для всех Hive Servers |
TezUI |
/etc/nginx/nginx.conf |
server.ssl_protocols |
TLSv1.2 |
Список TLS-протоколов, разделенных запятой, которые могут использоваться для SSL-соединений |
Metastore |
/etc/hive/conf/hive-site.xml |
metastore.ssl.protocol.blacklist |
SSLv2Hello,SSLv2,SSLv3,TLSv1,TLSv1.1 |
Отключает указанные TLS-протоколы для Hive Metastore |
HDFS, YARN |
/etc/hadoop/conf/core-site.xml |
hadoop.ssl.enabled.protocols |
TLSv1.2 |
Разделенный запятыми список TLS-протоколов, используемый для HDFS DataNode |
Spark2/Spark3 |
|
spark.ssl.protocol |
TLSv1.2 |
Указывает TLS-протокол для SSL-соединений |
Livy (for Spark2/Spark3) |
|
livy.server.thrift.ssl.protocol.blacklist |
SSLv2,SSLv3,TLSv1,TLSv1.1 |
Отключает указанные TLS-протоколы |
Flink |
/etc/flink/conf/flink-conf.yaml |
security.ssl.protocol |
TLSv1.2 |
Указывает определенную версию TLS. Указание нескольких значений через запятую не поддерживается |
ZooKeeper 3.5.5+ |
/etc/zookeeper/conf/zoo.cfg |
|
TLSv1.2 |
|
Проверка версии TLS
Чтобы определить версию TLS, которая используется в ADH, можно использовать curl или OpenSSL, как показано ниже.
Проверка с помощью curl
В следующем примере curl отправляет HTTPS-запрос к Hive server, используя устаревший TLSv1.1.
$ curl https://ka-adh-1.ru-central1.internal:10002/ --insecure --tlsv1.1 --tls-max 1.1
Полученный ответ информирует, что протокол TLSv1.1 не поддерживается.
curl: (35) Peer reports incompatible or unsupported protocol version
Если не указывать --tlsv1.1 --tls-max 1.1
, будет использован TLSv1.2 (по умолчанию) и curl вернет содержимое web-страницы.
Проверка с помощью OpenSSL
Следующей командой OpenSSL открывает SSL-соединение с сервером Tez и пытается получить SSL-сертификаты, используя устаревший TLSv1.1.
$ openssl s_client -connect ka-adh-2.ru-central1.internal:9999 -tls1_1
OpenSSL не удается установить безопасное соединение из-за неподдерживаемой версии TLS.
no peer certificate available. No client certificate CA names send
Если не указывать -tls1_1
, будет использован TLSv1.2 (по умолчанию) и OpenSSL получит SSL-сертификат.