Настройка сервиса подписания (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/

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

  1. Выполнить в консоли на машине установки ЕСИА Шлюза, команду:

     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)

  2. Необходимо получить доступ к консоли контейнера, для это нужно выполнить команду:

    docker exec -it 94472bb90676 bash
    

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

    root@94472bb90676:/home/app#
    
  3. Для проверки проброса директории с контейнерами КЭП, необходимо выполнить команду:

    ls -lah /var/opt/cprocsp/keys/root
    

    Результатом выполнения команды будет список директорий ранее загруженных (name.000)

  4. Для получения списка имен загруженных контейнеров, выполните команду:

    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, для Windows c:\windows\system32\drivers\etc\hosts)

Корректным результатом выполнения команды будет следующий результат:

{"signature":"FuJIp...jaQCFKjR0J+e+/TzpS8Hsg==","certificate":"MIIKyDC
.......
WddM7aQ89R9akeQ38uYd7usbbw==","certificate_algorithm":"1.2.643.7.1.1.3.2"}
  • Настройка сервиса подписания (jigner)
  • 1. Копирование КЭП (далее по тексту - контейнер) в сервис подписания запросов (Jigner)
  • 2. Конфигурирование сервиса подписания запросов
  • 3. Проверка корректной работы сервиса подписания запросов