Крипто-Про на сервере

Skip to end of metadata
Go to start of metadata

Менее надёжный и удобный вариант чем использование экспортированного ключа, но иногда бывает так, что сделать это затруднительно.

Для полноценной работы необходимо добавить скрипт выполнения генерации подписи запроса.

Установка крипто-про

Инструкция по установке и использованию на сайте altlinux, может не быть совместимой с CentOS на 100%.

На самом деле там много полезной информации помимо установки.

Часть её будет продублирована здесь:

Архив с программным обеспечением (КриптоПро CSP 3.6 R3) можно загрузить после предварительной регистрации:

Скачиваем linux-amd64.zip (9,1 МБ, для x86_64), далее, уже на сервере:

yum -y install unzip lsb pcsc-lite pcsc-lite-devel pcsc-lite-libs ccid
unzip linux-amd64.zip
yum -y install lsb-cprocsp* cprocsp*

Установить Драйвер с http://www.rutoken.ru/support/download/drivers-for-nix/
в нашем случае "Драйвер Рутокен S для GNU/Linux RPM для 64-bit (x64)"

ifd-rutokens

Добавить бинарники в PATH

export PATH="$PATH:$(ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')"

Зарегистрировать копию КриптоПро

#cpconfig -license -view
#cpconfig -license -set <license key>
#cpconfig -license -view

Перезагрузиться

Подключить ключ к серверу

Проверить наличие считывателя

#list_pcsc
available reader: Aktiv Co. Rutoken S 00 00

Проверить что находится в списке настроенных считывателей

#cpconfig -hardware reader -view

Nick name: Aktiv Co. Rutoken S 00 00
Connect name:
Reader name: All PC/SC readers

Nick name: FLASH
Connect name:
Reader name: FLASH

Nick name: HDIMAGE
Connect name:
Reader name:

Проверить что ключ подключен и читается

#csptest -keyset -enum_cont -verifycontext -fqcn

SP (Type:75) v3.6.5364 KC1 Release Ver:3.6.7491 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 22396611
\\.\Aktiv Co. Rutoken S 00 00\<UUID>
OK.
Total:
[ErrorCode: 0x00000000]

Установить сертификат из контейнера

#certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\<UUID>'

Проверить что сертификат импортирован

#certmgr --list

Источники:

  1. https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/87/2/ustnovk-kriptopro-csp-ubuntu--rutoken
  2. http://www.rutoken.ru/support/download/drivers-for-nix/

Генерация запроса и его подписывание

Необходимо заполнить указать переменные PIN=ВАШ_ПИНКОД и KEY=СТРОКА_ПОИСКА_КЛЮЧА # например email

Создать задачу для выполнения скрипта каждый час в 23 минуты.

touch /etc/cron.d/cryptopro

Открыть данный файл любым текстовым редактором и вставить туда следующее содержимое:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

23 * * * * root /app/reductor/cfg/userinfo/hooks/cryptopro.sh &>>/var/log/cryptopro.log

Создать скрипт подписывания запроса.

touch /app/reductor/cfg/userinfo/hooks/cryptopro.sh

Открыть его любым текстовым редактором и вставить туда следующее содержимое:

#!/bin/bash

PIN="ВАШ_ПИНКОД"
KEY="СТРОКА_ПОИСКА_КЛЮЧА" # например email
REQUEST="/app/reductor/var/lib/reductor/rkn/request.xml"
SIGN="$REQUEST.sign"

chroot /app/reductor /usr/local/Reductor/reductor_container/bin/gen_request.sh || return 1
/opt/cprocsp/bin/amd64/cryptcp -sign -dn $KEY -der -pin $PIN -nochain $REQUEST $SIGN || return 2

Добавить права на исполнение скрипта:

chmod a+x /app/reductor/cfg/userinfo/hooks/cryptopro.sh

Открыть конфигурационный файл:

vim /app/reductor/cfg/config

И отключить генерацию запроса и его подписывания средствами Carbon Reductor, установив следующий флаг в "1":

autoupdate['skip_sign_request']='1'

Выполнить рестарт crond.

/etc/init.d/crond restart
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.