Крипто про mint установка zhitsoboy.ru

Крипто про mint установка

Установка крипто про csp и php расширений на Centos 7

Установка крипто про csp и php расширений на Centos 7

Добрый день уважаемые читатели и подписчики блога, сегодня я хочу вам рассказать как производится установка крипто про csp и php расширений на Centos 7. Кто не в курсе Крипто про это программный комплекс криптографических утилит, созданный на основе CA Windows, но под российские стандарты. Его основные функции, это организация структуры PKI и работа с ЭЦП (электронно-цифровыми подписями). Сама установка crypto pro csp и cadescom в операционных системах Windows дело очень простое, а вот в терминале CentOS 7, уже повеселее. Ниже мы рассмотрим подробную инструкцию, как это делать.

Как установить Крипто про и расширения для языка PHP

И так, напоминаю, что мы с вами уже слегка знакомились с crypto pro, точнее с его последствиями, после установки, а именно решалась ошибка 80072EE2 при обновлении Windows, где приходилось его удалять и вычищать систему, сегодня задача обратная, установка, да не просто, а в терминале Centos 7. Ставить мы будем специальное расширение. Расширение для языка PHP предназначено для встраивания криптографических операций в серверные приложения на языке PHP с использованием сертифицированного СКЗИ КриптоПро CSP.

Расширение предоставляет программный интерфейс, аналогичный КриптоПро ЭЦП Browser plug-in, для выполнения следующих криптографических операций:

  • работа с сертификатами;
  • создание и проверка подписи форматов CAdES BES, CAdES-T, CAdES-X Long Type 1;
  • шифрование и расшифрование данных.

Вот по этой ссылке http://cpdn.cryptopro.ru/default.asp?url=content/cades/phpcades.html, выложен алгоритм установки крипто про csp на CentOS 7, но в очень сжатом виде, прочитав его у меня осталось очень много вопросов, я если честно был не приятно удивлен, что на этот вопрос, практически нет никакой информации, особенно на официальном сайте.

Собираем libphpcades

Для того, чтобы собрать libphpcades, у вас во первых, должна быть установлена CentOS 7. Далее мы должны установить пакеты boost-devel и php-devel, приступаем, добавляем репозиторий и ставим boost-devel.

Следующим шагом, мы ставим пакет php-devel с помощью команды.

Далее ставим lsb пакет (Linux Standard Base)

Далее переходим в папку root, если вы не в ней, с помощью команды

И скачиваем дистрибутив крипто про csp 4

Остальные версии можно посмотреть на официальном сайте Крипто ПРО . Для скачивания вам нужно будет зарегистрироваться.

Далее распаковываете архив с помощью tar и даете возможность запускать скрипт install.sh

Все теперь, можно устанавливать самый главный компонент libphpcades, сам крипто про csp 4

Далее после установки, прописываем переменные окружения, или перемещаемся в папку /opt/cprocsp/

Затем до установим, еще два пакета cprocsp-rdr-gui-gtk и lsb-cprocsp-devel

Затем следует установить пакет cprocsp-pki-2.0.0-cades.rpm из состава КриптоПро ЭЦП SDK . Скачиваем архив, лтбо вручную и потом через ssh передаем, либо скачиваем через wget. Скачивайте КриптоПро ЭЦП SDK 2.0, именно ее, так как она содержит пакет cprocsp-pki-2.0.0-cades.rpm.

Посмотреть список пакетом, можно командой

  • lsb-cprocsp-kc1-64-4.0.0-4.x86_64
  • cprocsp-pki-cades-2.0.0-1.x86_64
  • lsb-cprocsp-base-4.0.0-4.noarch
  • lsb-cprocsp-capilite-64-4.0.0-4.x86_64
  • cprocsp-curl-64-4.0.0-4.x86_64
  • lsb-cprocsp-devel-5.0.0-4.noarch
  • lsb-cprocsp-rdr-64-4.0.0-4.x86_64
  • cprocsp-rdr-gui-gtk-64-4.0.0-4.x86_64
  • cprocsp-pki-plugin-2.0.0-1.x86_64

Далее делаем следующее.

  • В файле /opt/cprocsp/src/phpcades/Makefile.unix указать путь к исходным текстам нужной версии PHP в переменной PHPDIR, но перд этим вы должны скачать исходные файлы php, нужной версии. Смотрим какая версия php у вас установлена.

PHP 5.6.30 (cli) (built: Jan 19 2017 08:09:42)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
You have mail in /var/spool/mail/root

Затем идете на официальный сайт php http://php.net/releases/ и находите там нужную вам версию, у меня это 5.6.3

У меня файл Makefile.unix выглядит вот так:

Теперь находясь в /opt/cprocsp/src/phpcade в зависимости от разрядности системы выполнить:

Для 64 битной системы

eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix

или для 32 битной системы

eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —32`; make -f Makefile.unix

У вас должна начаться собираться libphpcades, но бывают и грабли как в моем случае. Были вот такого типа:

[root@bx1 phpcades]# eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix
g++ -DLINUX -DUNIX -DHAVE_LIMITS_H -DHAVE_STDINT_H -I/opt/cprocsp/include/ -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/pki -I/opt/cprocsp/include/pki/atl -I/opt/cprocsp/include/pki/cppcades -I/opt/cprocsp/include/pki/cplib -I/root/php -I/root/php/main -I/root/php/Zend -I/root/php/TSRM -DSIZEOF_VOID_P=8 -fPIC -DPIC -c -o PHPCadesCPSigners.o PHPCadesCPSigners.cpp
PHPCadesCPSigners.cpp:1: error: expected constructor, destructor, or type conversion before string constant
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/new:40,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ext/new_allocator.h:33,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/x86_64-redhat-linux/bits/c++allocator.h:34,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/allocator.h:48,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/string:43,
from /opt/cprocsp/include/pki/cplib/StringProxy.h:50,
from /opt/cprocsp/include/pki/cplib/DateTime.h:31,
from /opt/cprocsp/include/pki/cppcades/CPPCadesDate.h:4,
from /opt/cprocsp/include/pki/cppcades/CPPCadesCPSigner.h:9,
from PHPCadesCPSigner.h:4,
from PHPCadesCPSigners.cpp:3:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/exception:35: error: expected declaration before end of line
make: *** [PHPCadesCPSigners.o] Error 1
You have mail in /var/spool/mail/root

Еще может быть ошибка error: expected constructor, destructor, or type conversion before, тут есть синтаксическая ошибка смотрите файл.

[root@bx1 phpcades]# eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix
make: Warning: File `Makefile.unix’ has modification time 92 s in the future
g++ -DLINUX -DUNIX -DHAVE_LIMITS_H -DHAVE_STDINT_H -I/opt/cprocsp/include/ -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/pki -I/opt/cprocsp/include/pki/atl -I/opt/cprocsp/include/pki/cppcades -I/opt/cprocsp/include/pki/cplib -I/root/php -I/root/php/main -I/root/php/Zend -I/root/php/TSRM -DSIZEOF_VOID_P=8 -fPIC -DPIC -c -o PHPCadesCPSigners.o PHPCadesCPSigners.cpp
In file included from stdafx.h:70,
from PHPCadesCPSigners.cpp:1:
/root/php/main/php.h:85:1: warning: «assert» redefined
In file included from /usr/include/boost/assert.hpp:54,
from /usr/include/boost/align/detail/align.hpp:12,
from /usr/include/boost/align/align.hpp:17,
from /usr/include/boost/smart_ptr/detail/array_allocator.hpp:12,
from /usr/include/boost/smart_ptr/detail/array_count_impl.hpp:12,
from /usr/include/boost/smart_ptr/make_shared_array.hpp:12,
from /usr/include/boost/smart_ptr/make_shared.hpp:18,
from /usr/include/boost/make_shared.hpp:15,
from /opt/cprocsp/include/pki/atl/atlcrypt2.inl:8,
from /opt/cprocsp/include/pki/atl/atlcrypt2.h:2262,
from stdafx.h:35,
from PHPCadesCPSigners.cpp:1:
/usr/include/assert.h:88:1: warning: this is the location of the previous definition
In file included from stdafx.h:35,
from PHPCadesCPSigners.cpp:1:
/opt/cprocsp/include/pki/atl/atlcrypt2.h:21: error: expected constructor, destructor, or type conversion before ‘

    Узнать путь к расширениям в вашей системе:

КРИПТО-ПРО на Linux Centos 6

КриптоПро — набор криптографических утилит и вспомогательных программ, в основном использующихся в программах российских разработчиков для генерации ЭЦП, работы с сертификатами и шифрования передаваемых данных.

До определенного момента софт использовался преимущественно на windows, но с некоторых пор стал популярен и на других платформах, в частности Linux, в связи с вводом государством различных законов, требующих оперативности обмена и простоты последнего в плане автоматизации.

Например, провайдерам необходимо оперативно реагировать на «Черные списки рунета», логично, что решение должно быть автономным и максимально удобным — с этим замечательно справляется Linux.

В моем случае CryptoPro будет работать в паре с eToken.

1. Архив с программным обеспечением

КриптоПро доступен по ссылке http://www.altlinux.org/КриптоПро (требуется регистрация)

2. Установка не отличается сложностью.

В первом случае есть скрипт для инсталляции, во втором необходимо поставить RPM пакет (токен до момента установки драйверов необходимо извлечь из сервера).

Читать еще:  Можно ли делать дефрагментацию SSD диска?

В процессе установки под CentOS 6.5, мне также понадобился модуль поддержки eToken (cprocsp-rdr-jacarta-3.6.1-3.6.219-1.x86_64) идет в поставке КриптоПРО 3.6.

rpm -i cprocsp-rdr-jacarta-3.6.1-3.6.346-1.x86_64.rpm

3. После установки, прописываем переменные окружения, или перемещаемся в папку «/opt/cprocsp/»

export PATH=»$PATH:$(ls -d /opt/cprocsp/bin/*|tr ‘n’ ‘:’)»

4. Проверяем лицензию.

С сайта КриптоПро выдаётся лицензия на три месяца.

# cpconfig -license -view Server license: 36360-U0030-01C97-HQ92Y-##### Expires: 3 month(s) 0 day(s) Client license: 36360-U0030-01C97-HQ92Y-##### Expires: 3 month(s) 0 day(s)

5. Вставляем ключ eToken и проверяем вывод list_pcsc:

# ./list_pcsc available reader: AKS ifdh 00 00

Утилита доступна после установки пакета

# rpm -i cprocsp-rdr-pcsc-64-3.9.0-4.x86_64.rpm

Как вариант штатными средствами:

# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 203a:fff9 Bus 002 Device 039: ID ####:#### Aladdin Knowledge Systems eToken Pro 64k (4.2)

6. Добавляем считыватель:

# ./cpconfig -hardware reader -add «AKS ifdh 00 00» Adding new reader: Nick name: AKS ifdh 00 00 Succeeded, code:0x0

7. Просмотр списка настроенных считывателей:

Nick name: AKS ifdh 00 00 Connect name: Reader name: AKS ifdh 00 00 Nick name: FLASH Connect name: Reader name: FLASH Nick name: HDIMAGE Connect name: Reader name: ��������� ������� �� ������� �����

Первый ридер «AKS ifdh 00 0» — это наш токен, последний — локальное хранилище. Контейнеры HDIMAGE живут по адресу «/var/opt/cprocsp/keys/ /»

Создание контейнера.

1. Создаём ключевой контейнер:

# ./csptest -keyset -newkeyset -cont ‘\.HDIMAGEBank’

2. Создаём запрос на сертификат:

# ./cryptcp -creatrqst -dn «E=test@test.ru,CN=Ivan,L=Moscow,O=Bank» -nokeygen -both -ku -cont Bank cert_request.req

3. Можно (нужно) запросить сертификат в своем центре сертификации.

Как вариант, откройте в браузере ссылку http://www.cryptopro.ru/certsrv/certrqxt.asp (тестовый удостоверяющий центр КриптоПро) вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла cert_request.req и нажмите кнопку «Выдать». Затем сохраните файл по ссылке «Загрузить сертификат» (по умолчанию предлагается имя certnew.cer).

4. Устанавливаем, полученный от УЦ сертификат, в указанный ключевой контейнер:

# ./certmgr -inst -store uMy -file certnew.cer -cont ‘\.HDIMAGEBank’

5. Проверка установленного сертификата

# ./certmgr -lis Certmgr 1.0 (c) «CryptoPro», 2007-2010. program for managing certificates, CRLs and stores ============================================================================= 1——- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : E=test@test.ru, CN=Ivan, L=Moscow, O=Bank Serial : 0x12000065ECE1AF809C191F54300000000065EC SHA1 Hash : 0x1a11194ef7fe628fe371ba0cf1d0421b7bd23448 Not valid before : 14/10/2014 14:52:55 UTC Not valid after : 14/10/2015 15:02:55 UTC PrivateKey Link : Yes. Container : HDIMAGE\Bank.0002829

ЭЦП и шифрование файла

1. Подпись файла

# ./cryptcp -sign -dn «E=test@test.ru,CN=Ivan,L=Moscow,O=Bank» -nocert -der test.txt test.sig CryptCP 3.41 (c) «Crypto-Pro», 2002-2013. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:Bank, Moscow, Ivan, test@test.ru Valid from 14.10.2014 14:52:55 to 14.10.2015 15:02:55 Certificate chain is not checked for this certificate: RDN:Bank, Moscow, Ivan, test@test.ru Valid from 14.10.2014 14:52:55 to 14.10.2015 15:02:55 Certificate chain is not checked for this certificate (error code 10000): /dailybuildsbranches/CSP_3_9/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:416: 0x20000133 Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?y Certificate chains are checked. Folder ‘./’: test.txt. CryptoPro CSP: Type password for container «Bank» Password: Signing the data. Signed message is created. [ReturnCode: 0]

2. Проверка подписи

# ./cryptcp -verify -dn «E=test@test.ru,CN=Ivan,L=Moscow,O=Bank» -nocert -der test.sig test1.sig root@localhost amd64]# ./cryptcp -verify -dn «E=test@test.ru,CN=Ivan,L=Moscow,O=Bank» -nocert -der test.sig test1.txt CryptCP 3.41 (c) «Crypto-Pro», 2002-2013. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:Bank, Moscow, Ivan, test@test.ru Valid from 14.10.2014 14:52:55 to 14.10.2015 15:02:55 Certificate chain is not checked for this certificate: RDN:Bank, Moscow, Ivan, test@test.ru Valid from 14.10.2014 14:52:55 to 14.10.2015 15:02:55 Certificate chain is not checked for this certificate (error code 10000): /dailybuildsbranches/CSP_3_9/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:416: 0x20000133 Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?y Certificate chains are checked. Folder ‘./’: test.sig. Signature verifying. Signer: Bank, Moscow, Ivan, test@test.ru Certificate chain is not checked for this certificate (error code 10000): /dailybuildsbranches/CSP_3_9/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:416: 0x20000133 Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?y Signature’s verified. [ReturnCode: 0]

3. Сравнение оригинального и расшифрованного после подписи файла

# diff test.txt test1.txt # ll | grep test| grep txt -rw-r—r—. 1 root root 12 Окт 14 19:12 test1.txt -rw-r—r—. 1 root root 12 Окт 14 12:51 test.txt

4. Зашифровываем файл:

root@localhost amd64]# ./cryptcp -encr -der -dn «CN=webserver» test.txt test.msg CryptCP 3.41 (c) «Crypto-Pro», 2002-2013. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:webserver Valid from 14.10.2014 08:39:19 to 14.10.2015 08:49:19 Certificate chain is not checked for this certificate: RDN:webserver Valid from 14.10.2014 08:39:19 to 14.10.2015 08:49:19 Certificate chain is not checked for this certificate (error code 10000): /dailybuildsbranches/CSP_3_9/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:416: 0x20000133 Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?y Certificate chains are checked. Encrypting the data. Encrypted message is created. [ReturnCode: 0]

5. Расшифровываем файл

# ./cryptcp -decr -dn «CN=webserver» test.msg test.out CryptCP 3.41 (c) «Crypto-Pro», 2002-2013. Command prompt Utility for file signature and encryption. The following certificate will be used: RDN:webserver Valid from 14.10.2014 08:39:19 to 14.10.2015 08:49:19 Certificate chain is not checked for this certificate: RDN:webserver Valid from 14.10.2014 08:39:19 to 14.10.2015 08:49:19 Certificate chain is not checked for this certificate (error code 10000): /dailybuildsbranches/CSP_3_9/CSPbuild/CSP/samples/CPCrypt/Certs.cpp:416: 0x20000133 Do you want to use this certificate ([Y]es, [N]o, [C]ancel)?y Certificate chains are checked. Decrypting the data. 0%CryptoPro CSP: Type password for container «webserver» Password: Message is decrypted. [ReturnCode: 0]

Работа с токеном.

Не отличается от выше написанного, за исключением того, что в качестве хранилища сертификатов мы используем «\.AKS ifdh 00 00 »

# ./csptestf -keyset -newkeyset -makecert -cont ‘\.AKS ifdh 00 00test’ -keytype exchange CSP (Type:75) v3.9.8000 KC1 Release Ver:3.9.8171 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 36484147 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2001 KC1 CSP Container name: «test» Exchange key is not available. Attempting to create an exchange key. Press keys. [. ] CryptoPro CSP: Set pin-code on produced container «test». Pin-code: an exchange key created. Self signed certificate created: E=test@cryptopro.ru, CN=test Certificate stored in container. Keys in container: exchange key Total: [ErrorCode: 0x00000000]

Читать еще:  Что такое порт в сети?

Вопросы без ответа

Для тестирования можно создать самоподписанный сертификат с закрытым ключом, но почему-то данный сертификат не появляется среди установленных » ./certmgr -list». Почему так происходит, пока разбираюсь.

CryptoPro JCP на Linux. Как легко и безболезненно перейти на новый стандарт шифрования

Содержание статьи

Если же ты впервые слышишь обо всем этом, то вот небольшая историческая справка.

В 1994 году в ФСБ разработали ряд стандартов и мер, призванных защитить обмен документами между организациями и другими участниками этого процесса. Одной из таких мер безопасности стала электронная цифровая подпись документов, а одним из стандартов — ГОСТ Р 34.10—94, где описан алгоритм формирования и проверки электронной цифровой подписи. Принятый и введенный в действие постановлением Госстандарта России от 23 мая 1994 года за номером 154, он проработал до 2001 года.

На смену пришел всем известный ГОСТ Р 34.10—2001 — улучшенный стандарт, разработанный для обеспечения большей стойкости алгоритма. Но время не стоит на месте, меняются алгоритмы и методы криптозащиты, и спустя одиннадцать лет ГОСТ Р 34.10—2001 меняют на ГОСТ Р 34.10—2012.

В новом стандарте первый вариант требований к параметрам остался прежним. Длина секретного ключа составляет порядка 256 бит, и предусмотрено использование хеш-функции с длиной хеш-кода 256 или 512 бит. Главное же отличие нового стандарта — варианты с дополнительными параметрами и схемами, в том числе хешированием по стандарту ГОСТ Р 34.11—2012 «Стрибог».

Стрибог — бог древних славян, который покровительствует ветрам, погоде и всему, что связано с воздушным пространством. Возможно, и облачным технологиям тоже. Подробнее об этом шифре читай в статьях «Хешируем по ГОСТ 34.11—2012» и «Пишем простой локальный блокчейн с использованием „Стрибога“».

В феврале 2014 года ФСБ объявила о начале перехода на использование нового национального стандарта ГОСТ Р 34.10—2012 в средствах электронной подписи для информации, не содержащей сведений, составляющих государственную тайну. В свет вышел документ за номером 149/7/1/3-58 от 31 января 2014 года «О порядке перехода к использованию новых стандартов ЭЦП и функции хэширования», он устанавливал следующие требования.

  1. После 31 декабря 2013 года прекратить сертификацию средств электронной подписи на соответствие требованиям к средствам электронной подписи, утвержденным приказом ФСБ России от 27.12.2011 года №796, если в этих средствах не предусматривается реализация функций в соответствии с ГОСТ Р 34.10—2012.
  2. После 31 декабря 2018 года запретить использование ГОСТ Р 34.10—2001 для формирования электронной подписи.

Министерство связи даже создало план по переходу на стандарт (PDF). Однако на практике оказалось, что все не так просто, и переход пришлось отложить аж до 31 декабря 2019 года. Причины следующие.

  1. Многие государственные и муниципальные органы не готовы перейти на использование нового стандарта электронной подписи ГОСТ-2012 из-за отсутствия поддержки на уровне ПО.
  2. Чтобы выпускать сертификаты нового образца, необходимо оборудование, которое поддерживает новый ГОСТ, и сертификат Головного удостоверяющего центра, сформированный с использованием ГОСТ-2012. Удостоверяющие центры получили его только летом 2018 года. Необходимо дополнительное время, чтобы выпустить сертификаты для всех пользователей.

Сейчас в ходу два стандарта криптозащиты для работы ЭЦП, но тем, кто использует ГОСТ-2001, срочно нужно что-то предпринимать. Зима, как говорится, близко, а это значит, что нас ждет череда испытаний при внедрении поддержки ГОСТ-2012.

Ссылки на официальную документацию:

Я расскажу, как развернуть сертифицированное ФСБ средство СКЗИ (CryptoPro JCP) на сервере Linux под управлением Java JDK. Кстати, если ты до сих пор используешь ГОСТ-2001, на сайте CryptoPro есть замечательная статья, советую тебе ее прочесть, лишним не будет.

Весь документооборот между участниками обмена происходит по принципу СМЭВ (система межведомственного электронного взаимодействия). Приложение может быть участником такой системы, но может и не быть им вовсе, принцип обмена документами от этого не меняется. Для простоты понимания я нарисовал небольшую схему.

Взаимодействие приложений при обмене данными с криптографической защитой в рамках СМЭВ

Как всегда, встает вопрос о лицензировании программного решения. CryptoPro JCP недешев, и если одна рабочая станция обойдется в 1200 рублей, то серверные лицензии стоят значительно дороже — порядка 30 000 за каждое ядро (или два ядра процессора Intel с отключенным Hyper Threading).

Установка и настройка криптопровайдера

В примерах я буду использовать виртуальную машину с CentOS 7, но ты не ограничен в выборе аппаратного обеспечения и дистрибутива Linux. Все действия и команды будут такими же.

Первым делом создадим локального пользователя, под которым будет работать ПО, использующее подпись документов.

Правильно установим Java JDK. Скачиваем необходимый дистрибутив.

Распаковываем архив и проверяем, готова ли папка с Java для копирования.

Копируем папку в раздел для прикладного ПО. Я обычно использую /opt .

Проверяем, что скопировалось правильно. Если необходимо, меняем владельца папки на root.

Прописываем переменные окружения для Java JDK для всех пользователей по умолчанию.

В файл пишем следующее:

Если на сервере стоит несколько версий Java JDK, то необходимо зарегистрировать альтернативы для новой версии.

В меню выбираем опцию 2 (или ту, что приведет к использованию более новой версии Java). Не забываем поправить права на JRE systemPrefs.

Проверяем установленную версию Java.

$ java -version
java version «1.8.0_191»
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Копируем папку с дистрибутивом CryptoPro JCP в раздел для прикладного ПО.

Проверяем, что все скопировалось корректно.

Выдаем права на запуск скриптов.

Проверяем владельца и права на папку, должен быть root. Переходим в нее.

Чтобы избежать проблем при инсталляции, проверь количество ядер на процессоре и сверься с лицензией. Узнать число ядер можно командой nproc .

Переходим к установке криптопровайдера JCP. Во время установки необходимо будет ответить на ряд вопросов.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Иван Рыжевцев

Системный администратор с богатым опытом. Прошедший огонь, воду и медные трубы. Главный девиз в жизни: Нерешаемых задач нет, надо только найти правильное решение!

Читать еще:  Двухканальный режим оперативной памяти что это?

Установка КриптоПро на RELS

Содержание

Начальные требования

Установленная система ROSA Enterprise Linux Server 6.7 в конфигурации «Стандартный сервер РОСА», доступ к репозиториям (для этого нужно использовать ключ, заранее полученный у службы поддержки, выполняя команду echo « » > /etc/rosa-support-id-server с правами администратора).

Применимость

В инструкции описана установка СКЗИ КриптоПро CSP 4.0 для ROSA Enterprise Linux Server 6.7 для работы с Рутокен. Пример указан для 64-разрядной архитектуры AMD64, для 32-разрядной установка аналогична с точностью до указания установочных пакетов и папок.

Получение установочных пакетов

Для установки СКЗИ КриптоПро CSP 4.0 для начала надо зарегистрироваться на сайте https://www.cryptopro.ru/ и со страницы загрузки https://www.cryptopro.ru/products/csp/downloads скачать версию 4.0 R2 для linux в формате rpm

Также сразу скачаем КриптоПро ЭЦП Browser plug-in версии 2.0 | отсюда

После этого браузер следует закрыть.

Для установки нужно распаковать полученный архив. Для этого откроем терминал (вкладка терминала расположена слева посередине панели запуска приложений)

и выполним следующие команды:

Должна появиться папка с установочными файлами КриптоПро, в консоли можно перейти в неё командой

Установка базовых компонентов КриптоПро

Далее нужно выполнить инсталляцию с правами администратора (root), для этого нужно в консоли ввести команду перехода в режим суперпользователя:

и ввести пароль, после этого ввести команды для инсталляции:

Установка дополнительных компонентов КриптоПро

Также стоит отметить пакеты поддержки устройств (токенов/ридеров/плат расширения). Эти пакеты находятся в архиве КриптоПро CSP, их названия начинаются с cprocsp-rdr-. При необходимости использования определенного устройства (например Рутокен ЭЦП) следует установить соответствующий пакет ( rpm -ivh cprocsp-rdr-rutoken*). Также в архиве есть пакеты с драйверами (ifd-*) их также следует установить при использовании соответствующего устройства (Рутокен S -> rpm -ivh ifd-rutokens*).

Не следует устанавливать пакет cprocsp-rdr-gui, так как в связке с cprocsp-rdr-gui-gtk он нарушает работу графических компонентов.

Установка Browser Plug-in

Подключение токена

Теперь можно подключить рутокен к USB-порту компьютера

Запускаем в отдельном окне консоли программу pcscd с правами администратора (root). На данном этапе используется отладочный вариант запуска.

После запуска не будем закрывать эту консоль (там можно будет видеть, как система общается со смарт-картой).

Для последующих команд будем использовать консоль, которую мы открыли первой. Для них права суперпользователя не требуются (можно набрать в терминале exit для отмены режима root).

Далее наберём в консоли следующее:

Утилита должна увидеть устройство:

Установка сертификатов

Редактирование списка доверенных узлов

Для начала следует добавить сайт КриптоПро в список доверенных. Для этого закрываем браузер если он был открыт и вводим в консоли команду (без прав администратора):

Вбиваем название сайта в строку «Добавить новый», нажимаем «+» и «Сохранить».

Установка сертификатов удостоверяющего центра

Для работы с сертификатами нужно установить сертификат удостоверяющего центра (в данном случае устанавливается непосредственно корневой сертификат) и сертификат с рутокена на локальное хранилище. Для этого нужно загрузить с сайта удостоверяющего центра файл, содержащий цепочку сертификатов (обычно файл с расширением .cer или .p7b) и список отозванных сертификатов. Они доступны по следующей ссылке (https://www.cryptopro.ru/certsrv/certcarc.asp). Нужно нажать «Загрузка цепочки сертификатов ЦС» и «Загрузка последнего базового CRL». В консоли нужно, используя права обычного пользователя, выполнить следующие команды:

Подробнее о программе certmgr можно узнать [[1]] Теперь переходим к работе с контейнерами, расположенными на токене. Если на устройстве нет контейнеров, можно их создать. Для этого следует воспользоваться инструкцией в пункте Создание тестового сертификата. После установки пакетов (п. 5.1. и п. 5.2.) должна появится возможность видеть контейнеры на устройстве. Чтобы узнать путь к контейнеру, а также о самом факте его наличия, можно ввести следующее:

Установка сертификата с контейнера на токене

Теперь установим сертификат с рутокена в личное хранилище (uMy):

Создание тестового сертификата

Создание контейнера на жёстком диске

Если на устройстве нет контейнеров, можно их создать. Заходим на тестовый удостоверяющий центр (УЦ) КриптоПро (http://www.cryptopro.ru/certsrv/certrqma.asp) и заполняем требуемые поля (обязательно заполнять только поле «Имя:»). Нужно обязательно пометить ключ как экспортируемый. Стоит заметить, что для проверки, используемой в пункте «Проверка работы Browser Plug-in» нужно использовать стандарт 2001 года.

Нажимаем кнопку «Выдать >»

Теперь можно копировать контейнер на токен, но сначала надо узнать его название. Для этого нужно открыть консоль и выполнить следующую команду:

Также надо узнать полное название контейнера, полученного в ходе генерации сертификата:

Копирование контейнера на токен

Затем используем эти названия в следующей команде:

Теперь токен содержит контейнер. Можно вернуться к пункту «Установка сертификата с контейнера на токене (п. 7.3)», предварительно удалив сертификат, установленный из контейнера на жёстком диске (сгенерированного тестовым удостоверяющим центром).

Удалить этот сертификат можно использовав следующую команду:

И, при необходимости, выбрав номер сертификата, который необходимо удалить.

Проверка работы электронной подписи с использованием Browser Plug-in

Для проверки работы Browser Plug-in можно использовать следующий ресурс: https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html Стоит также проверить, не установлены ли лишние сертификаты, ресурс работает корректно только если установлен единственный сертификат (можно использовать команду /opt/cprocsp/bin/amd64/certmgr -del). В случае правильной работы страница будет выглядеть примерно следующим образом.

В целом схема алгоритма установки выглядит следующим образом.

Рекомендации к использованию утилит командной строки КриптоПро

Установка переменных окружения

Для удобства стоит сначала сделать так, чтобы можно было запускать программы, не прописывая каждый раз путь к ним. Это можно сделать многими способами. В данном случае предлагается поступить следующим образом:

В консоли получаем права суперпользователя (набираем su и вводим пароль) Вводим следующую команду (для указания пути всем пользователям кроме суперпользователя):

Если нужно то же самое проделать для суперпользователя, используем команду

Для проверки можно подписать и файл и проверить подпись:

Использование псевдонимов

Для часто используемых команд (например команда для перечисления контейнеров) стоит использовать простые, быстро набираемые псевдонимы. Для назначения псевдонимов нужно использовать команду alias. Для примера назначим псевдоним для команды

В консоли получаем права суперпользователя (набираем su и вводим пароль) Вводим следующую команду:

Перезагружаемся Пример работы можно видеть ниже.

Литература по использованию утилит командной строки

Для получения информации по остальным программам лучше использовать команду с флагом «—help» (к примеру csptest —help).

Некоторые полезные команды

Показать доверенные сайты:

Смена криптопровайдера по умолчанию (доступные типы и названия можно посмотреть командой cpconfig -defprov -view_type):

Ссылка на основную публикацию
Adblock
detector