Установка и использование платформы

Тонкая настройка платформы: настройка TLS

Для работы с TLS, помимо его включения в конфигурационном файле ноды, необходимо получить файл keystore при помощи стандартной утилиты keytool:

keytool \
-keystore we.jks -storepass 123456 -keypass 123456 \
-genkey -alias we -keyalg RSA -validity 9999 \
-dname "CN=Waves Enterprise,OU=security,O=WE,C=RU" \
-ext "SAN=DNS:welocal.dev,DNS:localhost,IP:51.210.211.61,IP:127.0.0.1"
  • keystore - имя файла keystore.

  • storepass - пароль от keystore, указывается в конфиге в секции keystore-password.

  • keypass - пароль от приватного ключа, указывается в конфиге в секции private-key-password.

  • alias - произвольное имя.

  • keyalg - алгоритм генерации ключевой пары.

  • validity - срок действия в днях.

  • dname - уникальное имя по стандарту X.500, связанное с alias в keystore.

  • ext - расширения, применяемые при генерации ключа, указываются все возможные имена хостов и IP-адреса для работы сертификата в различных сетях.

В результате работы keytool будет получен keystore с именем we.jks. Чтобы подключиться к ноде с включенным TLS, также необходимо выпустить клиентский сертификат:

keytool -export -keystore we.jks -alias we -file we.cert

Полученный файл сертификата we.cert необходимо импортировать в хранилище доверенных сертификатов. При работе ноды в одной сети с пользователем, достаточно указать относительный путь к файлу we.jks в файле конфигурации ноды, как это показано выше.

В случае, если нода находится в другой сети, импортируйте сертификат we.cert в keystore:

keytool -importcert -alias we -file we.cert -keystore we.jks

Затем также укажите относительный путь к we.jks в секции tls файла конфигурации ноды.

Секция tls содержит следующие параметры:

tls {
type = EMBEDDED
keystore-path = ${node.directory}"/we_tls.jks"
keystore-password = ${TLS_KEYSTORE_PASSWORD}
private-key-password = ${TLS_PRIVATE_KEY_PASSWORD}
}
  • type - состояние режима TLS. Возможные опции: DISABLED (отключен, в этом случае остальные опции не указываются или комментируются) и EMBEDDED (включен, сертификат подписывается провайдером ноды и упаковывается в JKS-файл (keystore) - при этом директория, в которой располагается сертификат, и параметры доступа к сертификату и keystore указывается пользователем вручную в последующих полях).

  • keystore-path - относительный путь к keystore, размещаемому в директории ноды: ${node.directory}"/we_tls.jks".

  • keystore-password - пароль для keystore. Укажите пароль, который вы задали ранее флагом storepass для утилиты keytool.

  • private-key-password - пароль для приватного ключа. Укажите пароль, который вы задали ранее флагом keypass для утилиты keytool.