.. _annex_c: Приложение В "Настройка и Установка Сервиса подписания и верификации сообщений Notarius" (опционально) =========================================================================================================== Описание конфигурационных файлов Сервиса подписания и верификации сообщений -------------------------------------------------------------------------------- **Notarius** - Сервис подписания и верификации сообщений предназначен для проверки подписи и подписания сообщений. Состав и содержание дистрибутивного пакета ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Состав дистрибутива Сервиса подписания и верификации сообщений. - ``/distr/notarius`` – Сервис подписания и верификации сообщений: - ``/distr/notarius/conf/customLogLevels.xml`` – файл описания настроек логирования; - ``/distr/notarius/conf/application.yml`` – заготовка конфигурационного файла. Необходимо скопировать данные файлы в каталог ``/distr/notarius``. В скопированном конфигурационном файле ``application.yml`` задать необходимые параметры (в заготовке обозначены звездочками ``*``). Более подробное описание необходимых настроек файла ``application.yml`` указаны в разделах ниже. Реестр изменений конфигурационного файла ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :numref:`tab_config_notarius` содержит реестр изменений. .. _tab_config_notarius: .. table:: Реестр изменений конфигурационного файла +--------+-----------------------------------------------------------------------------------+ | Версия | Перечень изменений (относительно предыдущей версии) | +========+===================================================================================+ | 3.16.0 | Начальная версия | +--------+-----------------------------------------------------------------------------------+ | 3.17.0 | Изменений нет | +--------+-----------------------------------------------------------------------------------+ | 3.18.0 | Изменений нет | +--------+-----------------------------------------------------------------------------------+ | 3.19.0 | Изменений нет | +--------+-----------------------------------------------------------------------------------+ | 3.20.1 | Изменений нет | +--------+-----------------------------------------------------------------------------------+ Настройка и запуск Сервиса подписания и верификации сообщений -------------------------------------------------------------------- Установка **Notarius** опциональна, требуется только если по требованиям ИБ Агенту СМЭВ4 не разрешается использовать встроенные средства криптографии. Порядок загрузки данных и программ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Администратор УВ осуществляет развёртывание, запуск и настройку **Notarius** с помощью данного руководства. Состав и содержание дистрибутивного пакета ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Состав дистрибутива Сервиса подписания и верификации сообщений (``/distr/notarius``): - ``/distr/notarius/app/app.jar`` – исполняемый файл; Путь ``/distr/notarius`` указан в качестве примера. Есть возможность использовать любой другой путь, скорректировав соответствующим образом приведенные ниже команды. Предварительные операции (установка «пре-реквизитов») ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В случае, если Notarius устанавливается на машине, отличной от той где установлен Агент, перед запуском Notarius необходимо выполнить действия, описанные в :numref:`pre_requisites`: .. attention:: Не требуется устанавливать отдельный экземпляр CryptoPro CSP для сервиса подписания и верификации сообщений, в следующих случаях: - Если Сервис подписания и верификации сообщений установлен на том же сервере, что и Агент СМЭВ4 в варианте "без использования Docker", в такой ситуации на данном сервере уже имеется установленная CryptoPro CSP; 1. Выложить в каталог ``/distr/notarius`` конфигурационный файл ``application.yml``, подготовленный согласно :numref:`notaruis_config`. Запуск Сервиса подписания и верификации сообщений ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Убедитесь, что пользователь {{user}} имеет доступ к директориям, в которой установлен notarius: ``/distr/notarius``. Пример раздела конфигурации скрипта для запуска Notarius с использованием сервиса **systemd** Данный файл, с названием ``notarius.service``, необходимо сохранить в каталог ``/etc/systemd/system/``, скорректировав, при необходимости, пути к файлам. .. code-block:: bash [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** необходимо выполнить команду по включению, запуску сервиса и проверке его статуса: .. code-block:: bash systemctl daemon-reload systemctl enable notarius systemctl start notarius systemctl -l status notarius .. _notarius_config: Формирование конфигурационного файла Сервиса подписания и верификации сообщений ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Общие настройки конфигурационного файла ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ В конфигурационном файле ``application.yml`` задать идентификатор ключа CryptoPro: **alias** контейнера CryptoPro. Необходимо использовать тот же идентификатор ключа, что и на Агенте, с которым работает данный сервис проверки полномочий. Настройка ключей CryptoPro CSP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Указать идентификатор и пароль контейнера ключа CryptoPro: .. code-block:: yaml keys: alias: '*** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro ***' password: '*** ПАРОЛЬ КЛЮЧА CryptoPro ***' В случае, если идентификатор ключа CryptoPro содержит пробелы, его следует заключить в одинарные кавычки. Настройка модуля подписания печатных форм ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для настройки модуля подписания печатных форм необходимо перечислить используемые сертификаты для данного модуля и данные о них. При отсутствии используемых печатных форм, данный раздел в конфигурации должен отсутствовать. Пример раздела конфигурации: .. code-block:: yaml 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 }} {...} Настройка порта сервиса приема запросов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ При необходимости изменения порта, на котором принимает запросы Notarius, измените номер порта в блоке параметров .. code-block:: yaml # Настройка Web-сервера http: port: 8696 .. attention: При изменении значения порта, необходимо внести соответствующие изменения в ссылках на сервис notarius в конфигурационных файлах Агента и Сервиса проверки полномочий Настройка Notarius для передачи метрик в Prometheus ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Notarius поддерживает возможность передачи метрик работы во внешнюю систему сбора метрик **Prometheus**. Для включения возможности передачи необходимо добавить в конфигурационный файл следующие параметры: .. code-block:: yaml metrics: implementation: PROMETHEUS # порт, при обращении к которому notarius отдаёт значения метрик endpointPort: 8381 **Prometheus** следует настроить на опрос адреса, на котором запущен notaruis, по указанному порту. Изменение номера порта может потребоваться, например, в случае если порт уже занят каким-либо другим ПО. Настройка и запуск подписания и верификации сообщений с использованием Docker -------------------------------------------------------------------------------------------- Действия, требуемые для запуска Notarius под Docker, аналогичны действиям описанным в :numref:`start_with_docker`, за исключением следующих отличий: - В качестве базового каталога используется ``/distr/notarius``, либо любой другой, не совпадающий с уже используемым ``/distr/einfahrt``; - Файл ``application.yml`` должен быть подготовлен согласно :numref:`notarius_config`; - Загружается подготовленный согласно раздела :numref:`annex_d` образ Notarius; - В файле ``run_agent.sh`` указываются следующие значения: .. code-block:: bash # Название docker image указать здесь IMAGE=notarius:latest # Список используемых портов приложения, указывается в круглых скобках PORT_LIST=(8696 8381) - В файле ``log-save.sh`` указывается .. code-block:: bash NAME="notarius" - В командах ``docker start|stop`` указывается ``notarius`` вместо ``einfahrt``