|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (42)
просмотр истории страницы| В целом менее надёжный и удобный вариант чем использование экспортированного ключа, но иногда бывает так что сделать это затруднительно. |
| Для полноценной работы необходимо добавить три хука {toc} |
| h1. Выгрузка |
| h1. Установка крипто-про |
| |
| rkn_download.sh |
| [Инструкция по установке и использованию на сайте altlinux|http://www.altlinux.org/КриптоПро], может не быть совместимой с CentOS на 100%. |
| |
| На самом деле там много полезной информации помимо установки. Часть её будет продублирована здесь: Архив с программным обеспечением (КриптоПро CSP 3.6 R3) можно [загрузить|http://www.cryptopro.ru/downloads] после [предварительной регистрации|http://www.cryptopro.ru/products/csp/overview]: Скачиваем linux-amd64.zip (9,1 МБ, для x86_64), далее, уже на сервере: |
| {code} |
| yum -y install unzip lsb pcsc-lite pcsc-lite-devel pcsc-lite-libs ccid unzip linux-amd64.zip yum -y install lsb-cprocsp* cprocsp* |
| #!/bin/bash {code} |
| |
| prepare_request() { |
| Установить Драйвер с [http://www.rutoken.ru/support/download/drivers-for-nix/] в нашем случае "Драйвер Рутокен S для GNU/Linux RPM для 64-bit (x64)" |
| PIN=ВАШ_ПИНКОД {code} |
| KEY=СТРОКА_ПОИСКА_КЛЮЧА # например email |
| REQUEST=$SSLDIR/php/request.xml ifd-rutokens |
| SIGN=$REQUEST.sign {code} |
| |
| chroot $CHROOTDIR /bin/gen_request.sh || return 1 /opt/cprocsp/bin/amd64/cryptcp -sign -dn $KEY -der -pin $PIN -nochain $REQUEST $SIGN || return 2 } |
| Добавить бинарники в PATH |
| {code} |
| export PATH="$PATH:$(ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')" {code} |
| |
| h1. Диагностика |
| Зарегистрировать копию КриптоПро {code} #cpconfig -license -view #cpconfig -license -set <license key> #cpconfig -license -view {code} |
| |
| diagnostic.sh Перезагрузиться |
| Подключить ключ к серверу Проверить наличие считывателя |
| {code} |
| #!/bin/bash #list_pcsc |
| available reader: Aktiv Co. Rutoken S 00 00 {code} |
| |
| # проверка актуальности сертификата 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' ] |
| Проверить что находится в списке настроенных считывателей |
| } {code} |
| #cpconfig -hardware reader -view |
| |
| # заглушки, т.к. файла ключа нет check_cert() { return 0 } |
| Nick name: Aktiv Co. Rutoken S 00 00 Connect name: Reader name: All PC/SC readers |
| |
| check_key_in_cert() { return 0 |
| Nick name: FLASH Connect name: Reader name: FLASH |
| } |
| Nick name: HDIMAGE Connect name: Reader name: |
| {code} |
| h1. Получение информации о сертификате |
| Проверить что ключ подключен и читается {code} #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> |
| show_stat.sh OK. |
| Total: [ErrorCode: 0x00000000] |
| {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} |
| #certmgr -inst -cont '\\.\Aktiv Co. Rutoken S 00 00\<UUID>' {code} Проверить что сертификат импортирован {code} #certmgr --list {code} Команда для создания подписи запроса (проще тестировать подложив нужные хуки на место и запуская команду service reductor update) {code} #cryptcp -sign -dn <строка поиска ключа> -der -pin <pin ключа> -nochain <файл запроса (request.xml)> {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/] 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} В скрипте {code} userinfo/hooks/rkn_download.sh {code} Необходимо заполнить указать переменные PIN=ВАШ_ПИНКОД и KEY=СТРОКА_ПОИСКА_КЛЮЧА # например email |
