8. Приложение В «Настройка и Установка Сервиса подписания и верификации сообщений Notarius» (опционально)
8.1. Описание конфигурационных файлов Сервиса подписания и верификации сообщений
Notarius - Сервис подписания и верификации сообщений предназначен для проверки подписи и подписания сообщений.
8.1.1. Состав и содержание дистрибутивного пакета
Состав дистрибутива Сервиса подписания и верификации сообщений.
/distr/notarius– Сервис подписания и верификации сообщений:/distr/notarius/conf/customLogLevels.xml– файл описания настроек логирования;/distr/notarius/conf/application.yml– заготовка конфигурационного файла.
Необходимо скопировать данные файлы в каталог /distr/notarius.
В скопированном конфигурационном файле application.yml задать необходимые параметры
(в заготовке обозначены звездочками *). Более подробное описание необходимых настроек
файла application.yml указаны в разделах ниже.
8.1.2. Реестр изменений конфигурационного файла
Таблица 8.1 содержит реестр изменений.
Версия |
Перечень изменений (относительно предыдущей версии) |
|---|---|
3.16.0 |
Начальная версия |
3.17.0 |
Изменений нет |
3.18.0 |
Изменений нет |
3.19.0 |
Изменений нет |
3.20.1 |
Изменений нет |
3.21.0 |
Изменений нет |
3.22.0 |
Изменений нет |
3.23.0 |
Изменений нет |
3.23.4 |
Изменений нет |
8.2. Настройка и запуск Сервиса подписания и верификации сообщений
Установка Notarius опциональна, требуется только если по требованиям ИБ Агенту СМЭВ4 не разрешается использовать встроенные средства криптографии.
8.2.1. Порядок загрузки данных и программ
Администратор УВ осуществляет развёртывание, запуск и настройку Notarius с помощью данного руководства.
8.2.1.1. Состав и содержание дистрибутивного пакета
Состав дистрибутива Сервиса подписания и верификации сообщений (/distr/notarius):
/distr/notarius/app/app.jar– исполняемый файл;
Путь /distr/notarius указан в качестве примера. Есть возможность использовать любой другой путь,
скорректировав соответствующим образом приведенные ниже команды.
8.2.2. Предварительные операции (установка «пре-реквизитов»)
В случае, если Notarius устанавливается на машине, отличной от той где установлен Агент, перед запуском Notarius необходимо выполнить действия, описанные в Раздел 3.2.2:
Внимание
Не требуется устанавливать отдельный экземпляр CryptoPro CSP для сервиса подписания и верификации сообщений, в следующих случаях:
Если Сервис подписания и верификации сообщений установлен на том же сервере, что и Агент СМЭВ4 в варианте «без использования Docker», в такой ситуации на данном сервере уже имеется установленная CryptoPro CSP;
Выложить в каталог
/distr/notariusконфигурационный файлapplication.yml, подготовленный согласноnotaruis_config.
8.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
8.2.4. Формирование конфигурационного файла Сервиса подписания и верификации сообщений
8.2.4.1. Общие настройки конфигурационного файла
В конфигурационном файле application.yml задать идентификатор ключа CryptoPro: alias контейнера CryptoPro.
Необходимо использовать тот же идентификатор ключа, что и на Агенте, с которым работает данный сервис проверки полномочий.
8.2.5. Настройка ключей CryptoPro CSP
Указать идентификатор и пароль контейнера ключа CryptoPro:
keys:
alias: '*** ИДЕНТИФИКАТОР КЛЮЧА CryptoPro ***'
password: '*** ПАРОЛЬ КЛЮЧА CryptoPro ***'
В случае, если идентификатор ключа CryptoPro содержит пробелы, его следует заключить в одинарные кавычки.
8.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 }}
{...}
8.2.7. Настройка порта сервиса приема запросов
При необходимости изменения порта, на котором принимает запросы Notarius, измените номер порта в блоке параметров
# Настройка Web-сервера
http:
port: 8696
8.2.8. Настройка Notarius для передачи метрик в Prometheus
Notarius поддерживает возможность передачи метрик работы во внешнюю систему сбора метрик Prometheus.
Для включения возможности передачи необходимо добавить в конфигурационный файл следующие параметры:
metrics:
implementation: PROMETHEUS
# порт, при обращении к которому notarius отдаёт значения метрик
endpointPort: 8381
Prometheus следует настроить на опрос адреса, на котором запущен notaruis, по указанному порту.
Изменение номера порта может потребоваться, например, в случае если порт уже занят каким-либо другим ПО.
8.3. Настройка и запуск подписания и верификации сообщений с использованием Docker
Действия, требуемые для запуска Notarius под Docker, аналогичны действиям описанным в Раздел 3.5, за исключением следующих отличий:
В качестве базового каталога используется
/distr/notarius, либо любой другой, не совпадающий с уже используемым/distr/einfahrt;Файл
application.ymlдолжен быть подготовлен согласно Раздел 8.2.4;Загружается подготовленный согласно раздела Раздел 10 образ Notarius;
В файле
run_agent.shуказываются следующие значения:
# Название docker image указать здесь
IMAGE=notarius:latest
# Список используемых портов приложения, указывается в круглых скобках
PORT_LIST=(8696 8381)
В файле
log-save.shуказывается
NAME="notarius"
В командах
docker start|stopуказываетсяnotariusвместоeinfahrt