ЭЦП — различия между версиями

Материал из ЭНЭ
Перейти к: навигация, поиск
Строка 32: Строка 32:
 
</source>  
 
</source>  
 
Войдите в root, перейдите в эту папку  и из репозитория установите пакет  cryptopro-preinstall, а потом базовые пакеты и пакеты для рутокена
 
Войдите в root, перейдите в эту папку  и из репозитория установите пакет  cryptopro-preinstall, а потом базовые пакеты и пакеты для рутокена
<source lang="text" highlight="1">$ su -
+
<source lang="text" highlight="1">$ su -</source>
<source lang="text" highlight="1"># cd /home/user/CSP/linux-amd64/</source>  
+
<source lang="text" highlight="1"># cd /home/user/CSP/linux-amd64 </source>  
 
<source lang="text" highlight="1"># apt-get install cryptopro-preinstall</source>  
 
<source lang="text" highlight="1"># apt-get install cryptopro-preinstall</source>  
 
<source lang="text" highlight="1"># apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr-64*</source>  
 
<source lang="text" highlight="1"># apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* lsb-cprocsp-rdr-64*</source>  

Версия 15:44, 13 января 2019

Вход на сайт госзакупок из 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

</source> Войдите в 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

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

# ./install_gui.sh

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

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

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

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

$ cpconfig -license -viewLicense validity:
4040E-G0037-EK8R3-C6K4U-HCXQG
Expires: 2 month(s) 23 day(s)
License type: Server.

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

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

Из под root-a инициализациуйте считывателя HDIMAGE, Aktiv Co. Rutoken, запустите службу pcscd:

 # cpconfig -hardware reader -add HDIMAGE storeAdding new reader:
Nick name: HDIMAGE
Succeeded, code:0x0
 
<source lang="text" highlight="1"># 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
 
<source lang="text" highlight="1"> # systemctl start pcscd
<source lang="text" highlight="1"> # systemctl enable pcscd

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

 $ csptest -keyset -provtype 75 -newkeyset -cont '\\.\HDIMAGE\test'После этого должно будет открыться окно и в нем нужно будет поводить мышкой, для генерации случайных чисел, а потом будет предложено указать пароль на контейнер (если указать пустой, тогда пароль в дальнейшем запрашиваться не будет)
 
Проверить наличие контейнеров можно с помощью команды:
<source lang="text" highlight="1">$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251
CSP (Type:80) v4.0.9006 KC1 Release Ver:4.0.9708 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 6679203
\\.\HDIMAGE\test
OK.
Total: SYS: 0,000 sec USR: 0,070 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]

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

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

Созданный запрос будет сохранен в файле test5.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/.

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

$ 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\test' -inst_to_cont

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

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

$ certmgr -list Certmgr 1.1 (c) "Crypto-Pro",  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             : 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     : Yes                 
Container           : HDIMAGE\\test.000\2EF8
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC1 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
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]

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

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

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

$ su -<source lang="text" highlight="1"># 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. Для установки расширения в браузере зайдите по ссылке тестовая страница проверки КриптоПро Во всплывающем окне нажмите кнопку «Разрешить». Нажмите кнопку «Добавить». Появится сообщение, что расширение добавлено в браузер. Нажмите ОК. Убедиться, что плагин установлен можно на странице проверка Там должна появится надпись: «Плагин загружен» , а в поле Информация о сертификате должен показаться сертификат в списке. Если все сделали правильно и вам повезло, то переходите на сайт закупок zakupki.mos.ru и нажмите кнопку регистрация, потом вход по ЭЦП. Смотрите на диагностику сообщений.



Использовал вот эту инструкцию Работа с ЭЦП в linux