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

по сравнению с
Текущая Шевнин Игнат
на янв 10, 2018 12:51.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (18)

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

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

{toc}
{code}

Команда для создания подписи запроса (проще тестировать подложив нужные хуки на место и запуская команду service reductor update)

{code}
#cryptcp -sign -dn <строка поиска ключа> -der -pin <pin ключа> -nochain <файл запроса (request.xml)>
{code}

Источники:


h1. Хуки
h1. Генерация запроса и его подписывание

Установить их нужно следующими командами:

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



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

{code}
cd /usr/local/Reductor
# выгрузка
cp -vp contrib/examples/rkn_download.sh_with_cryptopro userinfo/hooks/rkn_download.sh
# показ статистики в меню и вебке
cp -vp contrib/examples/show_stat.sh_with_cryptopro userinfo/hooks/show_stat.sh
# диагностика (проверка времени работы ключа и его наличия)
cp -vp contrib/examples/diagnostic.sh_with_cryptopro userinfo/hooks/diagnostic.sh
touch /etc/cron.d/cryptopro
{code}

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

{code}
# 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
userinfo/hooks/rkn_download.sh # | | | | |
# * * * * * user-name command to be executed

23 * * * * root /app/reductor/cfg/userinfo/hooks/cryptopro.sh &>>/var/log/cryptopro.log
{code}
Необходимо заполнить указать переменные PIN=ВАШ_ПИНКОД и KEY=СТРОКА_ПОИСКА_КЛЮЧА # например email

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

{code}
touch /app/reductor/cfg/userinfo/hooks/cryptopro.sh
{code}

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

{code}
#!/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
{code}

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

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

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

{code}
vim /app/reductor/cfg/config
{code}

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

{code}
autoupdate['skip_sign_request']='1'
{code}

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

{code}
/etc/init.d/crond restart
{code}