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

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

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

     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)

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

    docker exec -it 94472bb90676 bash
    

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

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

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

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

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

    /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, для 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"}
  • Настройка сервиса подписания (signer)
  • 1. Копирование КЭП (далее по тексту - контейнер) в сервис подписания запросов (Signer)
  • 2. Конфигурирование сервиса подписания запросов
  • 3. Проверка корректной работы сервиса подписания запросов