От*! ВАЖНО: для Carbon Reductor 8 Крипто-Про временно не поддерживается.*
В целом менее надёжный и удобный вариант чем использование экспортированного ключа, но иногда бывает так что сделать это затруднительно.
Для полноценной работы необходимо добавить скрипт выполнения генерации подписи запроса.
Установка крипто-про
Инструкция по установке и использованию на сайте 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
Источники:
- https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/87/2/ustnovk-kriptopro-csp-ubuntu--rutoken
- 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'