ЭЦП

Материал из ЭНЭ
Перейти к: навигация, поиск

Вход на сайт госзакупок из linux

Если вам нужно создать или подписать оферту на сайте госзакупок как поставщик, например на zakupki.mos.ru , то надеюсь эта инструкция для linux вам поможет.

  1. Сначала убедитесь, что у вас версия linux обновлена до самой последней версии. Это нужно чтобы все браузеры были самыми свежими. Я использую BASEALT LINUX 8.2 его скачать можно вот отсюда. ссылка, конкретно вот этот установил alt-workstation-8-x86_64.iso
  2. После установки операционной системы нужно скачать распаковать КриптоПро (CSP). При этом надо обязательно зарегистрироваться на их сайте и подтвердить, что согласен с их условиями. Та версия, которую они предлагают скачать имеет лицензию на три месяца. Чтобы получить бессрочную лицензию - надо купить у них ключ за 2500 руб.
  3. Перейти в распакованный архив и установить все пакеты КриптоПро и дополнительно пакеты для Рутокена. Настроить лицензию. Настроить пути в окружении пользователя. Настроить Считывателя. Настроить Контейнеры. Настроить Сертификаты.
  4. Создать файл *.reg чтобы с его помощью получить сертификат в удостоверяющем центре
  5. Из браузера получить сертификат в удостоверяющем центре (УЦ) и его установить
  6. Установить пакет электронной цифровой подписи из репозитория (ЭЦП) и проверить его работоспобность, убедится что он подписывает документы
  7. С сайта КриптоПро скачать архив плагина для браузера. Распаковать его
  8. Перейти в распакованный архив и установить необходимые пакеты. Создать ссылку и скопировать необходимые библиотеки.
  9. Зайти в браузер и установить плагин.
  10. Перегрузить браузер и зайти на страницу проверки работы плагина на сайте КриптоПро. Убедится , что плагин загружен и появляется информация о сертификате в нужном поле.
  11. Зайти на сайт zakupki.mos.ru и зарегистрировать свою ЭЦП подпись. После ответа от администратора сайта можно приступать к работе с офертами и контрактами. Создавать и просматривать можно по логину и паролю. Подписывать и присваивать номера, только по ЭЦП!

Это кажется на первый взгляд, что сложно. На самом деле проделать эти все операции не составляет большого труда. Со временем их наверено можно будет все свернуть в один скрипт SHELL.


Работа с операционкой и с КриптоПро

Если надо, то скачайте и установите операционку

$ wget http://ftp.basealt.ru/pub/distributions/ALTLinux/p8/images/workstation/alt-workstation-8-x86_64.iso

Скачайте сертифицированную версию КриптоПро В нашем случае это CSP 4.0R3

$ wget https://www.cryptopro.ru/sites/default/files/private/csp/40/9944/linux-amd64.tgz

Cкопируйте скаченный файл из папки загрузок и распакуйте:

$ mkdir /home/user/CSP
$ cp /home/user/Загрузки/linux-amd64.tgz /home/user/CSP/.
$ cd /home/user/CSP
$ tar -xf linux-amd64.tgz

Войдите в root, перейдите в эту папку и из репозитория установите пакет cryptopro-preinstall, а потом базовые пакеты и пакеты для рутокена

$ su -
# cd /home/user/CSP/linux-amd64
# apt-get install cryptopro-preinstall
# apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr-64*
# apt-get install cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* pcsc-lite-rutokens pcsc-lite-ccid


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

# ./install_gui.sh

Она же позволяет просмотреть номер лицензии КриптоПро и поменять на другой, при покупке новой лицензии.

Введите полный путь к утилитам КриптоПро, для выполните от имени пользователя, который будет запускать команды, и в root-e но помните, что эта команда будет действовать до закрытия терминала, чтобы она исполнялась всякий раз, введите ее Профайл пользователя.

$  export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"

Тестирование и проверка установленных лицензий

Проверить срок истечения лицензии можно командой (Она всегда серверная, обратите внимание на строки действия лицензии Expires:):

$ cpconfig -license -viewLicense validity:
4040Y-0000Q-UKAC0-0FV0Y-244K9
license  - permanent
License type: Server.

Для настройки считывателя посмотрите доступные вам считыватели:

$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:SSSE3.
CryptAcquireContext succeeded.HCRYPTPROV: 8232211
GetProvParam(...PP_ENUMREADERS...) until it returns false
  Len    Byte  NickName/Name
_____________________________
 0x012a  0x72  Aktiv Co. Rutoken S 00 00
               All PC/SC readers
 0x012a  0x58  FLASH
               FLASH
 0x012a  0x18  HDIMAGE
               Структура дискеты на жестком диске
Cycle exit when getting data. 3 items found. Level completed without problems.
Total: SYS: 0,000 sec USR: 0,080 sec UTC: 0,140 sec
[ErrorCode: 0x00000000]

Инициализациуйте считывателя HDIMAGE, Aktiv Co. Rutoken:

 # cpconfig -hardware reader -add HDIMAGE storeAdding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0
# cpconfig -hardware reader -add 'Aktiv Co. Rutoken S 00 00' -name 'Rutoken'Adding new reader:
Nick name: Aktiv Co. Rutoken S 00 00
Name device: Rutoken
Succeeded, code:0x0

Из root-a запустите службу pcscd

 # systemctl start pcscd
 # systemctl enable pcscd


Создайте контейнер с именем «gaman» в рабочем пользователе и в считывателе HDIMAGE:

# csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\gaman'

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

Если сделали все правильно и вставили рутокен, то он уже должен отображаться в системе. Проверить наличие контейнеров и рутокена можно с помощью команды:

# csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:SSSE3.
AcquireContext: OK. HCRYPTPROV: 8232211
\\.\Aktiv Co. Rutoken S 00 00\OOO_GAMAN_1547043299392
\\.\HDIMAGE\8d518965-b752-01fe-e09b-3c37bf3ab02f
\\.\HDIMAGE\gaman
\\.\HDIMAGE\98bc20dc-f32b-629b-9d3d-1fff21744968
OK.
Total: SYS: 0,020 sec USR: 0,100 sec UTC: 0,960 sec
[ErrorCode: 0x00000000]

Из под root-a cоздайте запрос на получение сертификата для субъекта "cn=Test User5,e=cas@altlinux.org", используя открытый ключ, сгенерированный в контейнере gaman текущего пользователя криптопровайдером «GOST R 34.10-2001» (тип — 75) и он будет сохранен в файле gaman5.req, это назначение ключа — аутентификация и защита электронной почты:

# cryptcp -creatrqst -dn "cn=Test User5,e=cas@altlinux.org" -provtype 75 -nokeygen -cont '\\.\HDIMAGE\gaman' -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" gaman5.reqCryptCP 4.0 (c) "КРИПТО-ПРО", 2002-2018.
Утилита командной строки для подписи и шифрования файлов.
Запрос успешно создан и сохранен в файле.
[ErrorCode: 0x00000000]

Созданный запрос будет сохранен в файле gaman5.req. Эти данные нужны для получения сертификата в удостоверяющем центре. Просмотреть содержимое файла test5.csr можно, выполнив команду:

$ cat test5.reqMIIBMDCB4AIBADA2MRMwEQYDVQQDDApUZXN0IFVzZXI1MR8wHQYJKoZIhvcNAQkBFhBjYXNAYWx0
bGludXgub3JnMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQDq5IAql+tHfVT7r
oz+P5dPgOUVXc7dg91nzGM7fkUBSKlapGO2A2xUDRUBHLtW/hBCiZsxdH3ydhzlZ6nhcbNKgPjA8
BgorBgEEAYI3AgEOMS4wLDAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQD
AgTwMAgGBiqFAwICAwNBAFYnhGI6SsCwFRSl5p6EVnM7y6Hx9JGM6BFS4U3xTEGvzMK7yzk9j1kG
EKU7YZO5cFluPuDdi0WuYskhdz4SEg4=

Для получения сертификата в удостоверяющем центре (УЦ) , в нашем случае на примере тестового удостоверяющего центра КриптоПро, необходимо выполнить следующие действия:

  1. Откройте в браузере ссылку тестовый удостоверяющий центр КриптоПро
  2. Найдите и нажмите там ссылку «Отправить готовый запрос PKCS#10 или PKCS#7 в кодировке Base64»
  3. Вставьте в поле «Base-64-шифрованный запрос сертификата» содержимое файла test5.csr и нажмите кнопку «Выдать»
  4. В загрузках у вас появится файл certnew.p7b, скопируйте его в нашу рабочую директорию командой:
$ cp /home/user/Загрузки/certnew.p7b /home/user/CSP/.

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

$ cd /home/user/CSP && certmgr -list -file certnew.p7bCertmgr 1.1 (c) "CryptoPro",  2007-2018.
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=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Serial              : 0x2B6E3351FD6EB2AD48200203CB5BA141
SHA1 Hash           : 0x046255290b0eb1cdd1797d9ab8c81f699e3687f3
SubjKeyID           : 15317cb08d1ade66d7159c4952971724b9017a83
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 05/08/2014  13:44:24 UTC
Not valid after     : 05/08/2019  13:54:03 UTC
PrivateKey Link     : No                  
2-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=Test User5, E=cas@altlinux.org
Serial              : 0x120012447FA7E652B76808CD7900000012447F
SHA1 Hash           : 0xcb8e7ca68bea0ffbbd84c326d565de68cd8a15f5
SubjKeyID           : 6f7507353601d6d943f1406aae60c21ab65190e0
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 18/12/2018  13:41:38 UTC
Not valid after     : 18/03/2019  13:51:38 UTC
PrivateKey Link     : No
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
=============================================================================
 
[ErrorCode: 0x00000000]

Установите полученный сертификат удостоверяющего центра, выполнив команду:

# certmgr -inst -file certnew.p7b -store uRoot

Курсор ускачет вниз экрана, это значит происходит запрос команды, в ответ на запрос команды нажмите 1.

Запишите сертификата клиента в контейнер:

# certmgr -inst -file certnew.p7b -store uMy -cont '\\.\HDIMAGE\gaman' -inst_to_cont

Так же в ответ на запрос команды нажмите 2. И потом введите пароль на контейнер \\.\HDIMAGE\gaman , который вы задали при запросе

В директорию /home/user/CSP/sertifikats положите два файла сертификата. Их вам должны выдать при получении рутокена. Эти файлы нам нужны, чтобы вставить в машинное хранилище mRoot два сертификата: Головного удостоверяющего центра GUC.cer и Удостоверяющего центра UC.cer следующими командами:

# certmgr -inst -store mRoot -f /home/user/CSP/sertifikats/GUC.cer
# certmgr -inst -store mRoot -f /home/user/CSP/sertifikats/UC.cer

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

# certmgr -list  -store mRoot

Работа с плагином и расширением браузера

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

$ mkdir /home/user/CSP/cades_linux_amd64
$ cp /home/user/Загрузки/cades_linux_amd64.tar.gz /home/user/CSP/cades_linux_amd64/.
$ cd /home/user/CSP/cades_linux_amd64/
$ tar -xf cades_linux_amd64.tar.gz

Войдите в root, перейдите в эту папку, установите пакеты и создайте ссылку, скопируйте файл:

$ su -
# cd /home/user/CSP/cades_linux_amd64/
# apt-get install cprocsp-pki-*-cades.rpm cprocsp-pki-*-plugin.rpm
# ln -s /usr/share/chromium-browser/extensions /usr/lib64/chromium/extensions
# cp /opt/cprocsp/lib/amd64/libnpcades.so.2.0.0 /usr/lib64/browser-plugins/libnpcades.so

Зайдите в браузер Mozilla Firefox версии 52 и выше, установите расширение для браузера. Или воспользуйтесь браузером Chromium 61 или выше. Для установки расширения в браузере зайдите по ссылке тестовая страница проверки КриптоПро

Во всплывающем окне нажмите кнопку «Разрешить».

Нажмите кнопку «Добавить».

Появится сообщение, что расширение добавлено в браузер. Нажмите ОК.

Убедиться, что плагин установлен можно на странице проверка работы расширения браузера Если все сделали правильно, то появится надпись: «Плагин загружен» , а в поле Информация о сертификате должен показаться ваш сертификат с возможностью выбора в списке.

Если вам повезло и вы увидели свой сертификат рутокена, то переходите на сайт закупок zakupki.mos.ru и там нажмите кнопку Регистрация, потом вход по ЭЦП. Смотрите на диагностику сообщений.

Ссылки