Активация SSL в кластере ADPS с помощью Knox

Подготовка

Прежде чем активировать SSL в кластере ADPS, выполните следующие шаги:

  1. Убедитесь, что на хостах есть файлы truststore.jks и keystore.jks.

  2. Создайте сертификат для каждого узла, используя алгоритм RSA. Длина ключа должна быть 2048 бит, значение CN должно содержать FQDN соответствующего узла. Не рекомендуется использовать алгоритм DSA, а также алгоритм ECDSA из-за того, что этот алгоритм не очень широко поддерживается сертификационными центрами.

Для генерации и правильного размещения самоподписанных сертификатов используйте скрипт, представленный ниже.

Скрипт для генерации сертификатов
#!/bin/bash

# Script for generating and import self-signed certificates to java keystore and openssl ca-bundle
# Edit NUMHOSTS and HOSTS as it will be suitable for your case.


declare -a NUMHOSTS
declare -a HOSTS

SSH_OPTS='-o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
NUMHOSTS=(1 2 3)
HOSTS=$(for i in "${NUMHOSTS[@]}"; do echo "adps-$i.ru-central1.internal"; done)

echo Generate keystore.jks on each host
for HOST in $HOSTS; do
  echo "Generating keypair"
	ssh $SSH_OPTS $HOST "keytool -genkeypair -noprompt -keyalg RSA \
	-alias $HOST -dname \"CN=$HOST, OU=AD, O=AD, L=MSK, S=MO, C=RU\" \
	-keystore /tmp/keystore.jks -storepass bigdata -keypass bigdata -validity 360 -keysize 2048";
done

echo
echo Export certificates
for HOST in $HOSTS;do
	ssh $SSH_OPTS $HOST "keytool -exportcert -file /tmp/$HOST.crt -keystore /tmp/keystore.jks -storepass bigdata -alias $HOST -rfc";
done

echo
echo Collect all certificates
for HOST in $HOSTS; do
	scp $SSH_OPTS $HOST:/tmp/$HOST.crt /tmp/
done

echo
echo Transfer certificates on hosts
for HOST in $HOSTS; do
	scp $SSH_OPTS /tmp/*.crt $HOST:/tmp/
done

echo
echo Import certificates on each host
for HOST in $HOSTS; do
	ssh $SSH_OPTS $HOST "for CERT in $(echo ${HOSTS[*]}); do
	    keytool -importcert -noprompt -alias \$CERT -file /tmp/\$CERT.crt -keystore /tmp/truststore.jks -storepass bigdata;
	    sudo bash -c \"cat /tmp/\$CERT.crt >> /etc/pki/tls/certs/ca-bundle.crt\";
	done";
done

echo
echo Import truststore to Java CA store
for HOST in $HOSTS; do
	ssh $SSH_OPTS $HOST "sudo keytool -importkeystore -noprompt -srckeystore /tmp/truststore.jks \
	 -destkeystore /etc/pki/java/cacerts -deststorepass changeit -srcstorepass bigdata"
done

echo
echo Create and import OpenSSL cert for Nginx
for HOST in $HOSTS; do
        ssh $SSH_OPTS $HOST "sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
		-subj \"/C=RU/ST=Denial/L=MSK/O=AD/CN=$HOST\" \
		-keyout /etc/ssl/host_cert.key  -out /etc/ssl/certs/host_cert.cert"
        ssh $SSH_OPTS $HOST "sudo bash -c \"cat /etc/ssl/certs/host_cert.cert >> /etc/pki/tls/c
erts/ca-bundle.crt\""
done

Активация SSL

Для активации SSL на кластере ADPS следуйте шагам ниже:

  1. Перейдите со страницы Clusters на страницу кластера ADPS. Для этого нужно кликнуть на имя вашего кластера.

    Переход на страницу кластера
    Переход на страницу кластера
  2. Откройте вкладку Services и выберите Knox.

    Переход к Knox
    Переход к Knox
  3. В меню сервиса выберите Configuration и пролистайте до секции Configure SSL Knox Gateway. Найдите поле gateway.tls.key.alias и поменяйте значение с gateway-identity на действительный алиас хоста Knox (например, FQDN хоста Knox). Поле также можно очистить (нажав на иконку erase слева, новым значением параметра станет <not set>) — в таком случае нужное значение будет подставлено автоматически. После этого нажмите Save.

    Настройка Knox
    Настройка Knox
  4. Перейдите на страницу Clusters и выберите действие Enable SSL для кластера ADPS.

    Активация SSL
    Активация SSL
  5. В появившемся окне установите параметры keystore и truststore, а затем нажмите Run.

    РЕКОМЕНДАЦИЯ
    Подробнее об этих параметрах вы можете узнать в статье Конфигурационные параметры в подразделе KnoxConfigure SSL Knox Gateway.
    Установка параметров keystore и truststore
    Установка параметров keystore и truststore
  6. Вы можете следить за процессом, перейдя на страницу Jobs. После успешного завершения процесса SSL будет активирован.

    Наблюдение за процессом
    Наблюдение за процессом
ПРИМЕЧАНИЕ

Если процесс завершился с ошибкой, попробуйте перезапустить Knox и начать процесс заново.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней