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

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

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

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

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

Инструкция по установке на сайте altlinux

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

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

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

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

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

Хуки

Выгрузка

rkn_download.sh

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

Диагностика

diagnostic.sh

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

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

show_stat.sh

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"
}
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.