Содержание
Статья про КриптоПро
КриптоПро - линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры PKI и т.д.
Загрузка
Архив с программным обеспечением (КриптоПро CSP 3.6 R3) можно загрузить после предварительной регистрации:
- linux-ia32.zip (8,8 МБ, для i586)
- linux-amd64.zip (9,1 МБ, для x86_64)
Установка
- Распакуйте архив и перейдите в распакованную папку
- Проверьте доступность репозиториев для установки или установите вручную пакеты
lsb
,pcsc-lite
,libpcsclite-devel
- Под правами пользователя root выполните:
apt-get install lsb-cprocsp-base-3.6.1-4.noarch.rpm lsb-cprocsp-rdr-3.6.1-4.i486.rpm lsb-cprocsp-capilite-3.6.1-4.i486.rpm lsb-cprocsp-kc1-3.6.1-4.i486.rpm
Примечания:
- Для КриптоПро CSP 3.6 R2 потребуется установить пакет cprocsp-compat-altlinux-1.0.0-1.noarch.rpm
- Для установки
cprocsp-rdr-gui
может понадобиться libXm.so.3 (libopenmotif3
) и для вывода кириллицыfonts-bitmap-cyr_rfx-iso8859-5
. - Для установки
cprocsp-rdr-gui-gtk
потребуется предварительно установитьlibpangox-compat
.
Прописывание путей к исполняемым файлам
Перед использованием КриптоПро в консоли или в виде файла /etc/profile.d/cryptopro.sh
выполните:
export PATH="$PATH:$(ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')"
Проверка лицензии
Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:
):
sudo cpconfig -license -view Server license: 36360-U0030-01C97-HQ92Y-1EY1K Expires: 3 month(s) 0 day(s) Client license: 36360-U0030-01C97-HQ92Y-1EY1K Expires: 3 month(s) 0 day(s)
Для установки другой лицензии выполните (под root):
sudo cpconfig -license -set <серийный_номер>
Управление персональным сертификатом
Создание
Для создания запроса потребуется:
- DN (cn=webserver)
- имя контейнера (в локальном хранилище hdimage:
\\.\hdimage\webserver
- имя файла запроса
webserver.csr
Во время работы программы потребуется нажимать любые кнопки (после запроса «Press keys») и дважды указать пароль на контейнер (после запроса «Password:»).
sudo cryptcp -creatrqst -dn 'cn=webserver' -cont '\\.\hdimage\webserver' webserver.csr CryptCP 3.40 (c) "Crypto-Pro", 2002-2012. Command prompt Utility for file signature and encryption. Press keys... [........................................] CryptoPro CSP: Set password on produced container "webserver". Password: Retype password: Request is saved in file. [ReturnCode: 0]
Откройте в браузере ссылку http://www.cryptopro.ru/certsrv/certrqxt.asp (тестовый удостоверяющий центр КриптоПро).
Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла webserver.csr
и нажмите кнопку «Выдать». Затем сохраните файл по ссылке «Загрузить сертификат» (по умолчанию предлагается имя certnew.cer
.
Установите сертификат (введите пароль на контейнер при запросе):
sudo cryptcp -instcert -cont '\\.\hdimage\webserver' certnew.cer CryptCP 3.40 (c) "Crypto-Pro", 2002-2012. Command prompt Utility for file signature and encryption. CryptoPro CSP: Type password for container "webserver" Password: Certificate is installed. [ReturnCode: 0]
Просмотр
sudo certmgr -list Certmgr 1.0 (c) "CryptoPro", 2007-2010. program for managing certificates, CRLs and stores ============================================================================= 1------- Issuer : E=info@cryptopro.ru, C=RU, O=CRYPTO-PRO, CN=Test Center CRYPTO-PRO Subject : CN=webserver Serial : 0x28840500020011AA2550 SHA1 Hash : 0x744fdc41b8d1b9132120a2bdc706b46cfb6d9e8c Not valid before : 29/10/2013 09:32:21 UTC Not valid after : 04/10/2014 07:09:41 UTC PrivateKey Link : Yes. Container : HDIMAGE\\webserve.000\D0FF ============================================================================= [ErrorCode: 0x00000000]
Удаление
Удаление сертификата
certmgr -delete 1
Удаление контейнера:
certmgr -delete -cont '\\.\hdimage\webserver'
Размещение контейнеров
Контейнеры HDIMAGE: /var/opt/cprocsp/keys/<имя пользователя>/
Сохранение сертификата в файле
sudo cryptcp -CSPcert -cont '\\.\hdimage\webserver' -df CERT.cer CryptCP 3.40 (c) "Crypto-Pro", 2002-2012. Command prompt Utility for file signature and encryption. Openning container... Certificate's been copied. [ReturnCode: 0]
Импорт персонального сертификата
Вы можете импортировать собственный сертификат в локальный считыватель HDIMAGE
.
Если у вас нет сертификата, самое время его создать:
- Создание через
cert-sh-functions
(требует установки пакетаcert-sh-functions
- Создание сертификатов PKCS12 (достаточно только пакета
openssl
)
Допустим, мы пошли по первому пути и создали сертификат web-server:
cert-sh-functions
ssl_generate 'web-server'
Сертификат по умолчанию будет лежать в /var/lib/ssl/certs/web-server.cert
, а ключ — в /var/lib/ssl/private/web-server.key
Для импорта потребуется файл сертификата и закрытый ключ в контейнере PKCS#12.
Создадим для нашего ключа и сертификата необходимый контейнер:
openssl pkcs12 -export -in /var/lib/ssl/certs/web-server.cert -inkey /var/lib/ssl/private/web-server.pem -out web-server.p12
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
sudo openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN Enter Import Password: MAC verified OK -----BEGIN CERTIFICATE----- -----BEGIN PRIVATE KEY-----
И сертификат и ключ попали в контейнер.
После генерации сертификата проверим наличие считывателя:
sudo cpconfig -hardware reader -view | grep ^Nick Nick name: FLASH Nick name: HDIMAGE
Если считывателя нет, создайте его:
sudo cpconfig -hardware reader -add HDIMAGE store
Для импорта сертификата в КриптоПро используйте программу certmgr
:
certmgr -inst -file <путь к файлу с сертификатом> -cont <имя контейнера>
В нашем случае:
certmgr -inst -file web-server.p12 -cont HDIMAGE
КриптоПро ЭЦП Browser plug-in
Плагин проверки ЭЦП для браузера требует установленного КриптоПро CSP. Инструкция на сайте производителя: http://www.cryptopro.ru/cadesplugin/Manual.aspx
1. Скачиваем архив по ссылке http://www.cryptopro.ru/products/cades/plugin/get
2. Распаковываем архив, устанавливаем пакеты:
- сначала из дистрибутива КриптоПро:
apt-get install lsb-cprocsp-cades-3.6.1-4.i486.rpm \ lsb-cprocsp-ocsp-util-3.6.1-4.i486.rpm \ lsb-cprocsp-tsp-util-3.6.1-4.i486.rpm
- затем сам плагин:
apt-get install cprocsp-npcades-*.rpm
3. Копируем библиотеки:
на 32-битной системе:
cp /opt/cprocsp/lib/ia32/libncades.so* /usr/lib/browser-plugins/
на 64-битной системе:
cp /opt/cprocsp/lib/amd64/libncades.so* /usr/lib64/browser-plugins/
4. В Mozilla Firefox или Chromium перезапустите браузер и откройте адрес about:plugins
. Убедитесь, что плагин установлен.
На странице http://www.cryptopro.ru/cadesplugin/Manual.aspx справа вверху должна появится надпись:
Плагин загружен
и появится ссылка «Демо-страница».
На странице работает только усовершенствованная
подпись при следующих условиях:
- для tsputil и ocsputil есть валидные коммерческие лицензии (запустите программы с командой
license
, установка лицензии с параметрамиlicense -s <серийный номер>
)
При создании обычной подписи показывается ошибка http://ats.cryptopro.ru/forum2/default.aspx?g=posts&m=34173#post34173:
Не удалось создать подпись из-за ошибки: Internal error. (0x800B010A)
КриптоПро JCP
- Для установки КриптоПро JCP нужно установить Oracle Java 1.7.0 (через собственную сборку или пакеты для Fedora)
- Распакуйте архив и перейдите в каталог
- Выполните
./install.sh /usr/java/jre1.7.0_51 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX "Your Company"
Поддержка Рутокена
- Загрузите драйвер для JCP http://www.rutoken.ru/support/download/rutoken-for-cp/ и распакуйте его
- Выполните:
java -jar rtjlib.jar -install -rutoken
Запуск контрольной панели
./ControlPane.sh /usr
(требует графического дисплея)
Используемая литература
- ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
- ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки