КриптоПро: различия между версиями
Строка 50: | Строка 50: | ||
{{Note|Серийный номер следует вводить с соблюдением регистра символов.}} | {{Note|Серийный номер следует вводить с соблюдением регистра символов.}} | ||
== Управление персональным сертификатом == | |||
=== Создание === | |||
Для создания запроса потребуется: | |||
# DN ({{path|cn=webserver}}) | |||
# имя контейнера (в локальном хранилище hdimage: {{path|\\.\hdimage\webserver}}) | |||
# имя файла запроса ({{path|webserver.csr}}) | |||
Во время работы программы потребуется нажимать любые кнопки (после запроса «Press keys») и дважды указать пароль на контейнер (после запроса «Password:»). | |||
<source lang="text"># 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]</source> | |||
Откройте в браузере ссылку http://www.cryptopro.ru/certsrv/certrqxt.asp (тестовый удостоверяющий центр КриптоПро). | |||
вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла {{path|webserver.csr}} и нажмите кнопку «Выдать». Затем сохраните файл по ссылке «Загрузить сертификат» (по умолчанию предлагается имя {{path|certnew.cer}}). | |||
Установите сертификат (введите пароль на контейнер при запросе): | |||
<source lang="text"># 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]</source> | |||
=== Просмотр === | |||
<source lang="text"># 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 : 0x15840500020061930D50 | |||
SHA1 Hash : 0xc17bd9904f381aaa7f964507e331805bd0ff7681 | |||
Not valid before : 29/10/2013 09:06:06 UTC | |||
Not valid after : 04/10/2014 07:09:41 UTC | |||
PrivateKey Link : Yes. Container : HDIMAGE\\webserve.000\D0FF | |||
============================================================================= | |||
[ErrorCode: 0x00000000]</source> | |||
=== Удаление === | |||
Удаление сертификата | |||
certmgr -delete 1 | |||
Удаление контейнера: | |||
certmgr -delete -cont '\\.\hdimage\webserver' | |||
=== Размещение контейнеров === | |||
Контейнеры HDIMAGE: {{path|/var/opt/cprocsp/keys/root/}} | |||
== Импорт персонального сертификата == | == Импорт персонального сертификата == |
Версия от 12:36, 29 октября 2013
КриптоПро — линейка криптографических утилит (вспомогательных программ) — так называемых криптопровайдеров. Они используются во многих программах российских разработчиков для генерации ЭЦП, работы с сертификатами, организации структуры 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).
Прописывание путей к исполняемым файлам
Перед использованием КриптоПро в консоли или в виде файла /etc/profile.d/cryptopro.sh выполните:
export PATH="$PATH:$(ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')"
Проверка лицензии
Проверить срок истечения лицензии можно командой (обратите внимание на строки Expires:):
# 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):
cpconfig -license -set <серийный_номер>
Управление персональным сертификатом
Создание
Для создания запроса потребуется:
- DN ({{{1}}})
- имя контейнера (в локальном хранилище hdimage: \\.\hdimage\webserver)
- имя файла запроса (webserver.csr)
Во время работы программы потребуется нажимать любые кнопки (после запроса «Press keys») и дважды указать пароль на контейнер (после запроса «Password:»).
# 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).
Установите сертификат (введите пароль на контейнер при запросе):
# 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]
Просмотр
# 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 : 0x15840500020061930D50
SHA1 Hash : 0xc17bd9904f381aaa7f964507e331805bd0ff7681
Not valid before : 29/10/2013 09:06:06 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/root/
Импорт персонального сертификата
Вы можете импортировать собственный сертификат в локальный считыватель 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
Проверка созданного контейнера (при запросе введите пароль, введённый в предыдущей команде):
# openssl pkcs12 -in web-server.p12 -nodes | grep BEGIN
Enter Import Password:
MAC verified OK
-----BEGIN CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
И сертификат и ключ попали в контейнер.
После генерации сертификата проверим наличие считывателя:
# cpconfig -hardware reader -view | grep ^Nick Nick name: FLASH Nick name: HDIMAGE
Если считывателя нет, создайте его:
cpconfig -hardware reader -add HDIMAGE store
Для импорта сертификата в КриптоПро используйте программу certmgr (документация по нему: man 8 certmgr):
certmgr -inst -file <путь к файлу с сертификатом> -cont <имя контейнера>
В нашем случае:
certmgr -inst -file web-server.p12 -cont HDIMAGE
Invalid data in file web-server.p12 [ErrorCode: 0x80092003]
Поддержка шифрования по ГОСТ в OpenSSL
1. Установите пакет openssl-engines:
apt-get install openssl-engines
2. Измените конфигурационный файл OpenSSL. Для этого создайте скрипт gost-for-openssl следующего содержания:
# Adapt OpenSSL for GOST cryptography support
# See http://www.cryptocom.ru/products/openssl-1-config-en.html
. shell-version
. shell-ini-config
shell_ini_config_prefix=""
cfg="/etc/openssl/openssl.cnf"
grep -q '^openssl_conf' $cfg || sed -i '1iopenssl_conf = openssl_def' $cfg
if [ $libshell_version -ge 3 ] ; then
ini_config_set $cfg openssl_def engines engine_section
ini_config_set $cfg engine_section gost gost_section
ini_config_set $cfg gost_section engine_id gost
ini_config_set $cfg gost_section default_algorithms ALL
ini_config_set $cfg gost_section CRYPT_PARAMS id-Gost28147-89-CryptoPro-A-ParamSet
else
grep -q 'Gost' $cfg && exit
cat >> $cfg << _EOF_
[openssl_def]
engines = engine_section
[engine_section]
gost = gost_section
[gost_section]
engine_id = gost
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
_EOF_
fi
Запустите скрипт (под правами root):
sh gost-for-openssl
3. Проверьте, доступны ли шифры ГОСТ для OpenSSL:
$ openssl ciphers|tr ':' '\n'|grep GOST
GOST2001-GOST89-GOST89
GOST94-GOST89-GOST89
$ openssl req -newkey gost2001 -keyout server.key -out server.csr
Generating a 2048 bit GOST2001 private key
Error Generating Key
139962943858376:error:8008A077:lib(128):PKEY_GOST01_PARAMGEN:no
parameters set:gost_pmeth.c:293:
Используемая литература
- ЖТЯИ.00050-03 90 02-02. СКЗИ «КриптоПро CSP». Руководство администратора безопасности. Использование СКЗИ под управлением ОС Linux (из электронной документации по КриптоПро; доступно для скачивания с демонстрационной версией)
- ЖТЯИ.00050-03 90 07. КриптоПро CSP. Приложение командной строки
- http://habrahabr.ru/post/189352/