Настройка сервиса подписания (signer)
Настройку и тестирование сервиса подписания запросов (Signer) можно разделить на 3 этапа:
- копирование КЭП на инстанс сервиса подписания запросов;
- конфигурирование сервиса подписания запросов;
- проверка корректной работы сервиса подписания запросов.
1. Копирование КЭП (далее по тексту - контейнер) в сервис подписания запросов (Signer)
КЭП - (Квалифицированная электронная подпись) состоит из 6-ти *.key файлов, находящихся в директории вида name.000 :
- header.key
- name.key
- primary.key
- masks.key
- primary2.key
- masks2.key
Данную директорию (name.000) с файлами необходимо скопировать на машину установки ЕСИА Смарт
по пути:
/storage/signer/prod/keys
Итоговый результат копирования должен выглядеть так:
/storage/signer/prod/keys/name.000/
Для получения списка имен контейнеров необходимо выполнить следующие действия:
-
Выполнить в консоли на машине установки
ЕСИА Смарт
, команду:docker ps -a | grep signer
Результатом выполнения команды должна быть следующая строка:
94472bb90676 localhost:5000/signer-cpp:smolensk-csp "/entrypoint.sh /opt…" 3 minutes ago Up 3 minutes 192.168.56.4:31046->8505/tcp, 192.168.56.4:31046->8505/udp signer-prod-844fc99d-4d73-3d61-21cb-a71d7493ff07
Здесь в примере
94472bb90676
является значением id запущенного контейнера сервиса подписания запросов (signer) -
Необходимо получить доступ к консоли контейнера, для это нужно выполнить команду:
docker exec -it 94472bb90676 bash
Результатом выполнения команды будет приглашение ко вводу команд в консоли контейнера, вида:
root@94472bb90676:/home/app#
-
Для проверки проброса директории с контейнерами КЭП, необходимо выполнить команду:
ls -lah /var/opt/cprocsp/keys/root
Результатом выполнения команды будет список директорий ранее загруженных (name.000)
-
Для получения списка имен загруженных контейнеров, выполните команду:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
Результатом выполнения команды будет:
CSP (Type:80) v5.0.10013 KC1 Release Ver:5.0.13000 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2. DISABLED:RSA; AcquireContext: OK. HCRYPTPROV: 32465667 \\.\HDIMAGE\test_gost12_512 \\.\HDIMAGE\test_gost12_256 \\.\HDIMAGE\test_rsa_4096 \\.\HDIMAGE\pfx-dac16c25-dddb-1dc6-5b7e-6d8ef69f9c31
Где
pfx-dac16c25-dddb-1dc6-5b7e-6d8ef69f9c31
имя контейнера, который был загружен в сервис подписания запросов (signer). Данное имя потребуется для дальнейшего конфигурирования сервиса подписания запросов.
2. Конфигурирование сервиса подписания запросов
Конфигурация сервиса подписания запросов производится в файле config.yml
поставки ЕСИА Смарт
редактированием
переменной csp -> keys
- name: pfx-dac16c25-dddb-1dc6-5b7e-6d8ef69f9c31
alias: smev
pin: 123456
где:
- name - собственное имя контейнера;
- alias - дополнительное имя для контейнера;
- pin - Pin код контейнера для доступа к его содержимому.
3. Проверка корректной работы сервиса подписания запросов
Для проверки корректной работы сервиса подписания запросов (signer) необходимо выполнить запрос к сервису с помощью команды:
curl -X POST -d 'content=test' -d 'cert=smev' -u admin:123456 http://signer.domain/raw
где:
- smev - алиас контейнера, заданный на предыдущем этапе настройки;
- signer.domain - доменное имя сервиса;
- admin - значение переменной
signer_login
; - 123456 - значение переменной
signer_password
;
📝 Доменное имя signer.domain должно транслироваться в IP адрес инстанса установки
ЕСИА Смарт
.
Простым решением будет добавление пары "IP signer.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"}