11. Приложение С «Настройка и Установка Сервиса подписания и верификации сообщений Notarius» (опционально)

11.1. Описание конфигурационных файлов Сервиса подписания и верификации сообщений

Notarius - Сервис подписания и верификации сообщений предназначен для проверки подписи и подписания сообщений.

11.1.1. Состав и содержание дистрибутивного пакета

Состав дистрибутива Сервиса подписания и верификации сообщений.

  • /distr/notarius – Сервис подписания и верификации сообщений:

    • /distr/notarius/conf/customLogLevels.xml – файл описания настроек логирования;

    • /distr/notarius/conf/application.yml – заготовка конфигурационного файла.

Необходимо скопировать данные файлы в каталог /distr/notarius.

В скопированном конфигурационном файле application.yml задать необходимые параметры (в заготовке обозначены звездочками *). Более подробное описание необходимых настроек файла application.yml указаны в разделах ниже.

11.1.2. Реестр изменений конфигурационного файла

Таблица 11.1 содержит реестр изменений.

Таблица 11.1 Реестр изменений конфигурационного файла

Версия

Перечень изменений (относительно предыдущей версии)

3.16.0

Начальная версия

11.2. Настройка и запуск Сервиса подписания и верификации сообщений

Установка Notarius опциональна, требуется только если по требованиям ИБ Агенту СМЭВ4 не разрешается использовать встроенные средства криптографии.

11.2.1. Порядок загрузки данных и программ

Администратор УВ осуществляет развёртывание, запуск и настройку Notarius с помощью данного руководства.

11.2.1.1. Состав и содержание дистрибутивного пакета

Состав дистрибутива Сервиса подписания и верификации сообщений (/distr/notarius):

  • /distr/notarius/app/app.jar – исполняемый файл;

Путь /distr/notarius указан в качестве примера. Есть возможность использовать любой другой путь, скорректировав соответствующим образом приведенные ниже команды.

11.2.2. Предварительные операции (установка «пре-реквизитов»)

В случае, если Notarius устанавливается на машине, отличной от той где установлен Агент, перед запуском Notarius необходимо выполнить действия, описанные в разделе Раздел 3.2.2:

Внимание

Не требуется устанавливать отдельный экземпляр CryptoPro CSP для сервиса подписания и верификации сообщений, в следующих случаях: - Если Сервис подписания и верификации сообщений установлен на том же сервере, что и Агент СМЭВ4 в варианте «без использования Docker», в такой ситуации на данном сервере уже имеется установленная CryptoPro CSP;

  1. Выложить в каталог /distr/notarius конфигурационный файл application.yml, подготовленный согласно notaruis_config.

11.2.3. Запуск Сервиса подписания и верификации сообщений

Убедитесь, что пользователь {{user}} имеет доступ к директориям, в которой установлен notarius: /distr/notarius.

Пример раздела конфигурации скрипта для запуска Notarius с использованием сервиса systemd Данный файл, с названием notarius.service, необходимо сохранить в каталог /etc/systemd/system/, скорректировав, при необходимости, пути к файлам.

[Unit]
Description="Service for notarius"
After=syslog.target

[Service]
Type=simple

WorkingDirectory=/distr/notarius
User={{user}} #указать пользователя
Group={{user_group}} #указать группу

Environment="JAVA_HOME=/usr/lib/jdk/axiomjdk-java17.x86_64"
Environment="JDK_JAVA_OPTIONS=--add-exports=java.base/sun.security.util=ALL-UNNAMED \
    --add-exports=java.base/sun.security.x509=ALL-UNNAMED \
    --add-exports=java.base/sun.security.pkcs=ALL-UNNAMED \
    --add-exports=java.base/sun.security.provider=ALL-UNNAMED \
    --add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED \
    --add-exports=java.base/sun.net=ALL-UNNAMED \
    --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.nio=ALL-UNNAMED \
    --add-opens=java.xml/org.w3c.dom=ALL-UNNAMED \
    -Dsaffron.default.charset=UTF-16LE \
    -Dsaffron.default.collation.name='UTF-16LE$en_US' \
    -Dsaffron.default.nationalcharset=UTF-16LE \
    -XX:MaxRAMPercentage=80.0 \
    -XX:+UnlockExperimentalVMOptions \
    -XX:InitiatingHeapOccupancyPercent=16 \
    -XX:+UseStringDeduplication \
    -XX:+G1EagerReclaimHumongousObjects \
    -XX:+G1EagerReclaimHumongousObjectsWithStaleRefs \
    -XX:G1HeapWastePercent=2 \
    -XX:G1MaxNewSizePercent=25 \
    -XX:G1MixedGCLiveThresholdPercent=15 \
    -XX:+UseG1GC"
ExecStart=/usr/lib/jdk/axiomjdk-java17.x86_64/bin/java -jar app/app.jar
[Install]
WantedBy=multi-user.target

Далее от имени пользователя root необходимо выполнить команду по включению, запуску сервиса и проверке его статуса:

systemctl daemon-reload
systemctl enable notarius
systemctl start notarius
systemctl -l status notarius

11.2.4. Формирование конфигурационного файла Сервиса подписания и верификации сообщений

11.2.4.1. Общие настройки конфигурационного файла application.yml

11.2.5. Настройка ключей CryptoPro CSP

Указать идентификатор и пароль контейнера ключа CryptoPro:

keys:
  alias: '*** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro ***'
  password: '*** ПАРОЛЬ КЛЮЧА CryptoPro ***'

В случае, если идентификатор ключа CryptoPro содержит пробелы, его следует заключить в одинарные кавычки.

11.2.6. Настройка модуля подписания печатных форм

Для настройки модуля подписания печатных форм необходимо перечислить используемые сертификаты для данного модуля и данные о них.

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

Пример раздела конфигурации:

printable-form:
  # Максимальный размер данных для подписания
  max-content-length: 268435456
  # Настройка каким сертификатом подписать результат какого запроса.
  # Пары значений "название регламентированного запроса": "алиас сертификата"
  forms:
    {{ form1_name }}: {{ key1 }}
    {{ form2_name }}: {{ key2 }}
        {...}
  signature:
    printable-form-keys:
      -
        certificateAlias: {{ key1 }}
        privateKeyAlias: {{ key1 }}
        privateKeyPass: {{ key1_password }}

      -
        certificateAlias: {{ key2 }}
        privateKeyAlias: {{ key2 }}
        privateKeyPass: {{ key2_password }}
        {...}

11.2.7. Настройка порта сервиса приема запросов

При необходимости изменения порта, на котором принимает запросы Notarius, измените номер порта в блоке параметров

# Настройка Web-сервера
http:
  port: 8696

11.2.8. Настройка Notarius для передачи метрик в Prometheus

Notarius поддерживает возможность передачи метрик работы во внешнюю систему сбора метрик Prometheus.

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

metrics:
  implementation: PROMETHEUS
  # порт, при обращении к которому notarius отдаёт значения метрик
  endpointPort: 8381

Prometheus следует настроить на опрос адреса, на котором запущен notaruis, по указанному порту.

Изменение номера порта может потребоваться, например, в случае если порт уже занят каким-либо другим ПО.

11.3. Настройка и запуск подписания и верификации сообщений с использованием Docker

Действия, требуемые для запуска Notarius под Docker, аналогичны действиям описанным в Раздел 3.3, за исключением следующих отличий:

  • В качестве базового каталога используется /distr/notarius, либо любой другой, не совпадающий с уже используемым /distr/einfahrt;

  • Файл application.yml должен быть подготовлен согласно Раздел 11.2.4;

  • Загружается подготовленный согласно раздела Раздел 12 образ Notarius;

  • В файле run_agent.sh указываются следующие значения:

    # Название docker image указать здесь
    IMAGE=notarius:latest
# Список используемых портов приложения, указывается в круглых скобках
    PORT_LIST=(8696 8381)
  • В файле log-save.sh указывается

NAME="notarius"
  • В командах docker start|stop указывается notarius вместо einfahrt