Настройка сервиса подписания (jigner)
Настройку и тестирование сервиса подписания запросов (Jigner) можно разделить на 3 этапа:
1) копирование КЭП на инстанс сервиса подписания запросов; 2) конфигурирование сервиса подписания запросов; 3) проверка корректной работы сервиса подписания запросов.
1. Копирование КЭП (далее по тексту - контейнер) в сервис подписания запросов (Jigner)
КЭП - (Квалифицированная электронная подпись) состоит из 6-ти *.key файлов, находящихся в директории вида name.000 :
- header.key
- name.key
- primary.key
- masks.key
- primary2.key
- masks2.key
Данную директорию (name.000) с файлами необходимо скопировать на машину установки ЕСИА Шлюза
по пути:
/storage/jigner/prod/keys
Итоговый результат копирования должен выглядеть так:
/storage/jigner/prod/keys/name.000/
Для получения списка имен контейнеров необходимо выполнить следующие действия:
-
Выполнить в консоли на машине установки
ЕСИА Шлюза
, команду:docker ps -a | grep jigner
Результатом выполнения команды должна быть следующая строка:
94472bb90676 localhost:5000/jigner-jcsp:latest "/entrypoint.sh /opt…" 3 minutes ago Up 3 minutes 192.168.56.4:31046->8505/tcp, 192.168.56.4:31046->8505/udp jigner-prod-844fc99d-4d73-3d61-21cb-a71d7493ff07
Здесь в примере
94472bb90676
является значением id запущенного контейнера сервиса подписания запросов (jigner) -
Необходимо получить доступ к консоли контейнера, для это нужно выполнить команду:
docker exec -it 94472bb90676 bash
Результатом выполнения команды будет приглашение ко вводу команд в консоли контейнера, вида:
root@94472bb90676:/home/app#
-
Для проверки проброса директории с контейнерами КЭП, необходимо выполнить команду:
ls -lah /var/opt/cprocsp/keys/root
Результатом выполнения команды будет список директорий ранее загруженных (name.000)
-
Для получения списка имен загруженных контейнеров, выполните команду:
java -jar jigner.jar -c /opt/config.yml --showkeys
Результатом выполнения команды будет:
Available crypt containers for provider JCSP in HDImage store Oct 18, 2022 1:36:28 PM ru.CryptoPro.JCSP.Starter <init> INFO: Loading Java CSP 5.0.41975 Oct 18, 2022 1:36:28 PM ru.CryptoPro.JCSP.Starter <init> INFO: Java CSP has been loaded. container_name
Где
container_name
имя контейнера, который был загружен в сервис подписания запросов (jigner). Данное имя потребуется для дальнейшего конфигурирования сервиса подписания запросов.
2. Конфигурирование сервиса подписания запросов
Конфигурация сервиса подписания запросов производится в файле inventory/box_single_host.ini
поставки ЕСИА Шлюза
редактированием
переменной jigner_keys
'[{"alias":"smev","name":"container_name","pin":"0000"}]'
где:
- alias - Произвольное имя, алиас контейнера (необходимо для адресного выполнения запроса к контейнеру);
- name - Имя контейнера, полученное на шаге 3 предыдушего этапа настройки. (здесь в примере container_name);
- pin - Pin код контейнера для доступа к его содержимому. Если не pin не установлен на контейнер, оставить пустые кавычки ("pin":"").
После корректировки переменной и сохранения файла необходимо повторить команду:
ansible-playbook playbook/jigner-nomad-box.yml -i inventory/box_single_host.ini -D
3. Проверка корректной работы сервиса подписания запросов
Для проверки корректной работы сервиса подписания запросов (jigner) необходимо выполнить запрос к сервису с помощью команды:
curl -X POST -d 'content=test' -d 'cert=smev' -u admin:123456 http://jigner.domain/raw
где:
- smev - алиас контейнера, заданный на предыдушем этапе настройки;
- jigner.domain - доменное имя сервиса присвоенное при конфигурировании поставки в файле инвентаря
inventory/box_single_host.ini
; - admin - значение переменной
jigner_login
; - 123456 - значение переменной
jigner_password
;
📝 Доменное имя jigner.domain должно транслироваться в IP адрес инстанса установки
ЕСИА Шлюза
.
Простым решением будет добавление пары "IP jigner.domain
" в файл hosts вашей операционной системы. (для Linux систем это файл/etc/hosts
, для Windowsc:\windows\system32\drivers\etc\hosts
)
Корректным результатом выполнения команды будет следующий результат:
{"signature":"FuJIp...jaQCFKjR0J+e+/TzpS8Hsg==","certificate":"MIIKyDC
.......
WddM7aQ89R9akeQ38uYd7usbbw==","certificate_algorithm":"1.2.643.7.1.1.3.2"}