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

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

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

просмотр истории страницы
{code}

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

{code}
{code}

Источники:[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/]
Источники:
# [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/]


h1. Хуки

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

{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
{code}


h2. Выгрузка

rkn_download.sh

{code}
#!/bin/bash

prepare_request() {
PIN=ВАШ_ПИНКОД
KEY=СТРОКА_ПОИСКА_КЛЮЧА # например email
REQUEST=$SSLDIR/php/request.xml
SIGN=$REQUEST.sign

chroot $CHROOTDIR /bin/gen_request.sh || return 1
/opt/cprocsp/bin/amd64/cryptcp -sign -dn $KEY -der -pin $PIN -nochain $REQUEST $SIGN || return 2
}
{code}

h2. Диагностика

diagnostic.sh
{code}
#!/bin/bash

# проверка актуальности сертификата
check_cert_date() {
date_human="$(/opt/cprocsp/bin/amd64/certmgr -list | grep 'Not valid after' | sed -e 's/.*: //')"
read ddmmyyyy time mod <<< "$date_human"
IFS=/ read dd mm yyyy <<< "$ddmmyyyy"
date_finish_utc="$(date +%s --date "$yyyy-$mm-$dd $time $mod")"
days_before_finish=$(( ($date_finish_utc - $(date +%s))/ 86400 ))
echo -n " $days_before_finish дней"
[ "$days_before_finish" -gt '14' ]
}

# заглушки, т.к. файла ключа нет
check_cert() {
return 0
}

check_key_in_cert() {
return 0
}
{code}

h2. Получение информации о сертификате

show_stat.sh
{code}
cert_date() {
date_human="$(/opt/cprocsp/bin/amd64/certmgr -list | grep 'Not valid after' | sed -e 's/.*: //')"
read ddmmyyyy time mod <<< "$date_human"
IFS=/ read dd mm yyyy <<< "$ddmmyyyy"
date_finish_utc="$(date +%s --date "$yyyy-$mm-$dd $time $mod")"
days_before_finish=$(( ($date_finish_utc - $(date +%s))/ 86400 ))
echo "$days_before_finish"
}
{code}