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

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

Для работы со смарт-контрактами нода использует два типа соединения, для каждого из которых можно настроить TLS: docker-TLS и подключение по API.

Настроить защищенный канал связи по протоколу TLS для gRPC и REST API для каждой ноды можно с помощью параметров работы gRPC и REST API в секции api конфигурационного файла ноды. Для настройки защищенного канала связи по протоколу TLS используйте параметр TLS в блоке rest и в блоке в блоке grpc.

Для работы с API по защищенному каналу связи по протоколу TLS необходимо:

  1. включить защищенный канал связи по протоколу TLS в секции node.api конфигурационного файла ноды;

  2. Поместить корневой сертификат удостоверяющего центра, полученный доверенным способом, в хранилище сертификатов CAcerts как описано выше в разделе Удостоверяющий центр;

  3. получить артефакты TLS:

  • для каждой ноды подготовить 2 ключевые пары и 2 запроса на сертификат: клиентский и серверный;

  • отправить запросы на сертификат в УЦ и получить сертификаты;

  • для каждой ноды сформировать хранилище доверенных сертификатов и поместить в него корневой сертификат удостоверяющего центра;

  • импортировать клиентский и серверный сертификат в хранилище доверенных сертификатов;

  • добавить ключевую пару к другим ключам ноды.

Пример подготовки этих артефактов представлен в следующем разделе:

  1. В секции tls конфигурационного файла ноды включить и настроить TLS, в частности указать относительный путь к хранилищу доверенных сертификатов, как описано ниже в разделе Секция tls конфигурационного файла ноды.

Секция tls конфигурационного файла ноды

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

network.tls = true
  tls {
    type = GOST
    keystore-type = "HDIMAGE"
    keystore-password = ${?TLS_KEYSTORE_PASSWORD}
    truststore-type = "CertStore"
    truststore-password = "certstore_password"
    truststore-path = "/etc/node-tls/..data/certs_node_0"
    required-client-oids = ["1.3.6.1.4.1.8.1.1", "1.3.6.1.4.1.9.2.2"]
  }
  • type – режим использования протокола TLS. Возможные опции:

    • GOST – взаимодействие осуществляется по каналу связи по протоколу TLS с использованием алгоритмов ГОСТ криптографии;

    • DISABLED – протокол TLS не используется при взаимодействии по каналу связи; в этом случае остальные опции в секции tls не указываются или комментируются.

    Важно

    Отказ от использования протокола TLS при взаимодействии по каналу связи допускается исключительно в тестовых целях.

  • keystore-type – параметр всегда имеет значение HDIMAGE;

  • keystore-password – пароль для хранилища ключей keystore; этот же пароль необходимо ввести в консоли по запросу keystore-password, когда вы создаёте ключевую пару и запрос на сертификат при помощи утилиты GeneratePkiKeypair;

  • truststore-type – параметр всегда имеет значение CertStore;

  • truststore-password – пароль для хранилища сертификатов trust-store; этот же пароль необходимо задать флагом -storepass, когда вы формируете хранилище сертификатов TrustStore при помощи утилиты keytool, как описано в разделе Пример подготовки артефактов для TLS;

  • truststore-path – относительный путь к хранилищу сертификатов CertStore, размещаемому в директории ноды; для каждой ноды указывается свой путь; ниже дан пример формирования хранилища сертификатов certstore с помощью утилиты keytool.

  • required-client-oids – список идентификаторов OID, требуемых от клиентских TLS-сертификатов при доступе на API при использовании алгоритмов ГОСТ криптографии с PKI в рабочем режиме (т.е. когда параметру node.crypto.type присвоено значение GOST, параметру node.crypto.pki.mode задано значение on, подробнее см. раздел Общая настройка платформы: настройка режима работы). Параметр является обязательным при использовании одного УЦ. Если список не пуст, то он должен представлять собой массив строк, соответствующих стандартному формату OID.