Установка версии 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, который доступен при выполнении действия Manage 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 |
Spark3 |
/etc/spark3/conf/spark-defaults.conf |
spark.ssl.protocol |
TLSv1.2 |
Указывает TLS-протокол для SSL-соединений |
Livy |
/etc/livy-spark3/conf/livy.conf |
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-сертификат.