Отчетность через СБИС в Xubuntu 20.04

Что нужно для работы рутокен эцп 2.0 в системе мотп?

Для работы ключа на сайте МОТП потребуется установка:

  • Программы КриптоПРО CSP
  • Плагина КриптоПРО ЭЦП browser plugin
  • Драйвера для ключа ЕГАИС Рутокен ЭЦП 2.0
  • Рутокена Плагин

Кроме это потребуется настройка:

  • Интернет-браузера
  • ключа для ЕГАИС

1 устанавливаем необходимые пакеты и их зависимости

Пуск — Настройки — Менеджер пакетов Synaptic

через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты: 

  • opensc
  • libccid
  • libpam-p11
  • libp11-2
  • libengine-pkcs11-openssl

1: установка easy-rsa

Для начала нужно установить набор сценариев easy-rsa на ваш сервер ЦС. Пакет easy-rsa – это инструмент управления центрами сертификации, который вы будете использовать для создания закрытого ключа и открытого сертификата; позже они понадобятся для подписи запросов от клиентов и серверов, которые будут обращаться к вашему ЦС.

Войдите на свой сервер ЦС как пользователь sudo (не root) и выполните следующие команды:

sudo apt updatesudo apt install easy-rsa

Нажмите y, чтобы подтвердить, что вы хотите установить пакет.

Теперь у вас есть все, что вам нужно для настройки Easy-RSA. На следующем этапе мы создадим инфраструктуру открытых ключей, а затем начнем создавать ЦС.

2: подготовка инфраструктуры открытых ключей

Теперь пора создать инфраструктуру открытых ключей (PKI) на сервере ЦС. Убедитесь, что вы работаете как пользователь sudo, и создайте каталог easy-rsa. Использовать sudo для запуска следующих команд не нужно, поскольку ваш обычный пользователь должен управлять и взаимодействовать с ЦС без повышенных привилегий.

mkdir ~/easy-rsa

Эта команда создаст в домашнем каталоге новый каталог по имени easy-rsa. Мы будем использовать его для создания символических ссылок (симлинков), указывающих на файлы пакета easy-rsa, которые мы установили на предыдущем этапе. Эти файлы находятся в папке /usr/share/easy-rsa.

Создайте симлинки с помощью команды ln:

ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Примечание: В других мануалах вы можете прочесть, что вам нужно скопировать файлы easy-rsa в каталог PKI. Но в данном мануале используется метод символических ссылок. Это удобно, потому что в результате любые обновления пакета easy-rsa будут автоматически отражаться в скриптах вашей PKI.

Чтобы ограничить доступ к новому каталогу PKI, убедитесь, что он заблокирован для всех, кроме владельца:

chmod 700 /home/8host/easy-rsa

Теперь инициализируйте PKI в каталоге easy-rsa:

cd ~/easy-rsa./easyrsa init-pkiinit-pki complete; you may now create a CA or requests.Your newly created PKI dir is: /home/8host/easy-rsa/pki

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

3: создание центра сертификации

Прежде чем вы сможете создать закрытый ключ и сертификат ЦС, вам нужно создать файл по имени vars и заполнить его некоторыми значениями по умолчанию. Перейдите в каталог easy-rsa, затем создайте и отредактируете файл vars с помощью nano или другого текстового редактора:

cd ~/easy-rsanano vars

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

Библиотека для работы с рутокен эцп 2.0[править]

Для работы должна быть установлена библиотека librtpkcs11ecp:

Вход в личный кабинет мотп

Теперь все готово для работы с Рутокен ЭЦП 2.0 в
личном кабинете МОТП. 

Для нормальной работы с электронной подписью рекомендуем использовать браузеры: Internet Explorer, Google Chome, Яндекс Браузер.

Открываем сайт МОТП в любом из перечисленных браузерах (стабильнее работает в Chrome и Яндекс), выбираем ваш сертификат из списка и нажимаем «Войти в личный кабинет». После нажатия на кнопку появится окно запроса Пин-кода, вводим его и заходим в личный кабинет.

вход в личный кабинет МОТП

Если помогла статья — скажите Спасибо автору:

Генерация пары ключей и формирование запроса на сертификат[править]

Для генерации пары ключей и формированию запроса на сертификат с помощью ПО «Центр регистрации Рутокен» следует:

Добавление (запись) сертификатов[править]

Добавление сертификата, без привязки к ключам (только проверка ЭЦП):

Ассоциировать сертификат с контейнером, сертификат попадет в пользовательское хранилище uMy:

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

Добавление сертификата УЦ из файла certne_ucw.cer в хранилище машины (с правами root):

Добавление корневых сертификатов из файла cert.p7b (под root):

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

Значения pin-кодов на рутокен по умолчанию[править]

У Рутокен:
PIN-коды Рутокен S/Lite/ЭЦП 2.0, установленные по умолчанию — Пользователь: 12345678; Администратор: 87654321

У Рутокен Web:
PIN на скретч-карте.

Подробнее о КриптоПро: КриптоПро
Для поддержки Рутокен в качестве ключевого носителя в СКЗИ «КриптоПро CSP» необходимо установить модуль поддержки (из архива КриптоПро):

Изменение pin-кода[править]

Для изменения PIN-кода введите команду:

где
pin — текущий PIN-код устройства;
new-pin — новый PIN-код устройства.

Инициализация токена[править]

Внимание! При инициализации все данные с токена будут удалены!

Для инициализации токена следует выполнить команду (необходимо ввести so-pin карты 2 раза или передать его в качестве параметра —so-pin):

Как выполнить копирование сертификата с рутокена через криптопро

Для решения задачи понадобится программа КриптоПРО CSP. Непосредственно копирование ЭЦП с токена идет следующим образом:

В указанном нами месте на жестком диске или USB-носителе появится новая папка с ключами, которую далее можно копировать «традиционным» способом.

Обратим внимание, что если вы планируете далее использовать скопированную ЭЦП по прямому назначению, то находиться указанная папка должна в корневой директории диска.

Как выполнить копирование эп из реестра

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

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

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

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

В случае успеха будет выдано окно о завершении операции. Нажмите кнопку «ОК»

Как произвести копирование сертификата с рутокен

На одном накопителе Рутокен может находиться до 28 сертификатов ЭЦП (зависит от объема встроенной памяти). Этого достаточно для решения задач даже с учетом постепенного копирования на имеющийся носитель дополнительных ключей. На практике иногда приходится сталкиваться с необходимостью копирования сертификата с токена для переноса на другой или временного хранения на жестком диске, в облаке.

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

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

Обратим внимание, что использование обычного USB-накопителя стоит рассматривать исключительно в качестве временной меры для хранения сертификатов и ключей из-за риска их хищения злоумышленниками. Исключением будет случай, когда подобное копирование используется для получения дополнительного комплекта файлов на случай выхода из строя Рутокен.

Настройка аутентификации[править]

С помощью следующих инструкций можно настроить аутентификацию в системе с помощью сертификата и ключа на Рутокен ЭЦП:

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

Настройка электронной подписи егаис для мотп

Чтобы настроить электронную подпись, которую Вы используете для ЕГАИС-алкоголь, в системе МОТП необходимо определенным образом перезаписать Сертификат ключа проверки электронной подписи. Для этого Вы можете воспользоваться
инструкцией с сайта производителя Рутокен или нашей инструкцией, описанной ниже.

Внимание! Работа с электронной подписью требует определенных знаний и навыков. Если Вы не можете выполнить какое-либо действие или не уверены в своих силах — обратитесь к специалистам за помощью! 

Шаг 1. Сохраняем наш сертификат для ЕГАИС.

Открываем Панель управления Рутокен, которую можно найти тут: Пуск — Программы (или Все программы) — Рутокен — Панель управления Рутокен и переходим во вкладку Сертификаты.

Читайте также:  Стратегии поведения в электронном аукционе — Контур.Закупки

выбор сертификата в панели управления рутокен

Теперь выбираем наш сертификат для ЕГАИС-алкоголь (именно сертификат, полученный в Удостоверяющем центре, а не в личном кабинете ЕГАИС) и открываем его двойным нажатием левой кнопки мышки, переходим во вкладку «Состав» и нажимаем «Копировать в файл».

экспорт сертификата егаис в файл


Запустится мастер экспорта сертификата, везде нажимаем «Далее», со всем соглашаемся, указываем путь и имя файла для сохранения сертификата.

После успешного экспорта сертификата убедитесь, что сертификат сохранился на вашем компьютере и он открывается! Иначе последующие действия сделают ваш ключ для ЕГАИС нерабочим!

Если Вы самостоятельно не можете произвести эти действия, или боитесь ошибиться — обратитесь в нашу техническую поддержку. Мы поможем настроить ваш компьютер для работы в МОТП с ключом ЕГАИС-алко. Стоимость услуги — 600 рублей, оплата по факту за результат любым удобным способом (на р/с или онлайн по карте).

Шаг 2. Удаляем сертификат с ключа ЕГАИС-алко.

Для удаления сертификата с ключа ЕГАИС-алко необходимо авторизоваться в ключе под записью Администратор, для этого на вкладке сертификаты нажимаем «Ввести пин-код», выбираем «Администратор» и вводим пин-код.


Стандартный пин-код Администратора на Рутокен ЭЦП —

87654321

. Если стандартный пин-код не подходит — обратитесь в Удостоверяющий центр, который выдал Вам подпись, и запросите пин-код Администратора.

вход на рутокен эцп под администратором

После удаления сертификата с ключа ЕГАИС-алко вместо названия вашей организации или ИП появится строка с названием «Ключевая пара…». Ее удалять нельзя!

панель управления руткоен удалили.JPG


 Шаг 3. Записываем сертификат на ключ.

Следующим шагом необходимо «вернуть» ваш сертификат на место — записать обратно на ключ ЕГАИС-алко. Для этого в Панели управления Рутокен нажимаем кнопку «Импорт», выбираем файл сертификата (который сохранили на предыдущем шаге), и он автоматически устанавливается в нужное место.

установка сертификата на рутокен эцп 2.0

После установки сертификата на носитель Рутокен ЭЦП 2.0 можно пробовать заходить на сайт МОТП и работать.


Описанная манипуляция с Рутокен ЭЦП 2.0 не влияет на работу ЕГАИС-алкоголь.

Если Вы не можете самостоятельно настроить Рутокен ЭЦП 2.0 для работы с ЕГАИС-алко — сэкономьте свое время и обратитесь за помощью в нашу платную техническую поддержку.

Отчетность через сбис в xubuntu 20.04

Регламентированная отчетностьЗарплатаWEBv8v8::СПРЗУП3.xРоссияБУФОМС, ПФ, ФССБесплатно (free)

Организации, в которых количество сотрудников превышает установленное значение, обязаны отправлять отчетность по телекоммуникационным каналам связи. Это может быть Контур-Экстерн, Такском или любой другой провайдер. Все чаще пользователи 1С используют сервис 1С-отчетность. И все чаще сертификат оформляется на сотрудника отдела кадров или бухгалтерии. В случае, если нужно оформить несколько сертификатов, возникают трудности в версии ЗУП 3.1.14 и более поздних. О том, как с ними справиться, пойдет речь в данной публикации.

05.04.2021   
757   
keat24   
1    

Подпись запроса на сертификат

На предыдущем этапе вы создали пробный запрос сертификата и ключ. Вы скопировали его в каталог /tmp на своем сервере ЦС (такой же процесс вы бы использовали, если бы у вас были реальные клиенты или серверы, отправляющие вам CSR-запросы, которые необходимо подписать).

Далее сервер ЦС должен импортировать тестовый сертификат и подписать его. Как только запрос сертификата будет подтвержден ЦС и передан обратно на сервер, клиенты, которые доверяют данному ЦС, также будут доверять только что выданному сертификату.

Поскольку на сервере ЦС доступна утилита easy-rsa, она будет использоваться на этапах подписания, чтобы упростить задачу (и не использовать openssl, как мы это делали в предыдущем разделе).

Первым делом для подписания запроса сертификата нужно импортировать этот запрос с помощью скрипта easy-rsa:

cd ~/easy-rsa./easyrsa import-req /tmp/8host-server.req 8host-server. . .The request has been successfully imported with a short name of: 8host-serverYou may now use this name to perform signing operations on this request.

Теперь вы можете подписать запрос, запустив скрипт easyrsa с параметром sign-req, за которым указывается тип запроса и значение Common Name, включенное в запрос. Запрос может использовать один из следующих типов: client, server или ca. Поскольку наш тестовый сертификат предназначен для вымышленного сервера, используйте тип server.

./easyrsa sign-req server 8host-server

В выводе вам будет предложено подтвердить, что запрос поступил из надежного источника. Введите yes, затем нажмите Enter:

You are about to sign the following certificate.Please check over the details shown below for accuracy. Note that this requesthas not been cryptographically verified. Please be sure it came from a trustedsource or that you have verified the request checksum with the sender.

Request subject, to be signed as a server certificate for 3650 days:subject=commonName                = 8host-serverType the word ‘yes’ to continue, or any other input to abort.Confirm request details: yes. . .Certificate created at: /home/8host/easy-rsa/pki/issued/8host-server.crt

Если вы зашифровали ключ ЦС, сейчас вам будет предложено ввести пароль.

Итак, вы подписали запрос сертификата 8host-server.req, используя закрытый ключ сервера ЦС из файла /home/8host/easy-rsa/pki/private/ca.key. Полученный файл 8host-server.crt содержит открытый ключ шифрования для нашего условного сервера, а также новую подпись от сервера ЦС.

Если бы этот запрос относился к реальному серверу (например, к веб- или VPN-серверу), сервер ЦС должен был бы передать новые файлы 8host-server.crt и ca.crt на удаленный сервер, который сделал запрос сертификата:

scp pki/issued/8host-server.crt 8host@your_server_ip:/tmpscp pki/ca.crt 8host@your_server_ip:/tmp

После этого выданный сертификат можно использовать с веб-серверами, VPN, инструментами управления конфигурацией, системами баз данных или для аутентификации клиента.

Проведение копирования контейнера с помощью встроенных средств операционной системы windows

При использовании USB-накопителя либо дискеты все можно выполнить стандартными средствами Windows. Для этого достаточно скопировать папку с сертификатом на конкретный носитель. Внутри этой папки будет 6 файлов с одинаковым расширением .key. Также здесь может находиться ключ в виде файла типа keyName.cer, копировать который необязательно.

Файлы для электронной цифровой подписи имеют следующие наименования (все имеют расширение .key):

Файл primary.key включает в себя 32 байта ключа, представленного в формате ASN1. При этом данное значение представляет собой только 50% искомого ключа, так как полная его версия может быть получена при делении на маску с учетом модуля Q.

Файл masks.key включает 32 байта маски ключа, которая также представлена в формате ASN1. Также здесь есть 12 байт данных для генерации ключа при условии, что криптографический контейнер защищен от несанкционированного доступа паролем (последний также принимает участие при генерации уникального ключа хранения). Завершает перечень информации в файле контрольная сумма, занимающая 4 байта.

Файл header.key представляет собой набор параметров ЭЦП и другую общую информацию.

Проверка наличия сертификатов и ключевых пар[править]

Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):

В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене.

Чтобы открыть сертификат или ключевую пару скопируйте ID необходимого объекта и введите команду:

В результате в окне Терминала отобразится полная информация об указанном объекте.

Чтобы скопировать сертификат в файл введите команду:

Проверка работы рутокен эцп в системе[править]

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

Список поддерживаемых механизмов:

$ pkcs11-tool -v --module /usr/lib64/pkcs11/librtpkcs11ecp.so --list-mechanisms
Using slot 0 with a present token (0x0)
Supported mechanisms:
  RSA-PKCS-KEY-PAIR-GEN, keySize={512,2048}, hw, generate_key_pair
  RSA-PKCS, keySize={512,2048}, hw, encrypt, decrypt, sign, verify
  RSA-PKCS-OAEP, keySize={512,2048}, hw, encrypt, decrypt
  MD5, digest
  SHA-1, digest
  GOSTR3410-KEY-PAIR-GEN, hw, generate_key_pair
  GOSTR3410, hw, sign, verify
  mechtype-0x1204, hw, derive
  GOSTR3411, hw, digest
  GOSTR3410-WITH-GOSTR3411, hw, digest, sign
  mechtype-0x1224, hw, wrap, unwrap
  mechtype-0x1221, hw, encrypt, decrypt
  mechtype-0x1222, hw, encrypt, decrypt
  mechtype-0x1220, hw, generate
  mechtype-0x1223, hw, sign, verify
  mechtype-0x1211, sign, verify

Проверка работы[править]

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

Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):

Просмотр сертификатов[править]

Просмотр сертификатов:

Просмотр сертификатов в локальном хранилище uMy:

Просмотр сертификатов в контейнере:

$ certmgr -list -container '\.Aktiv Rutoken ECP - CP 00 00Rutoken'
Certmgr 1.1 (c) "Crypto-Pro",  2007-2021.
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=ivanov@mail.mail, CN=Иванов Иван Иванович, SN=Иванов, G=Иван Иванович, C=RU, S=39 Калининградская обл., L=Калининград, STREET=Пр-т Победы 14 кв.3
Serial              : 0x120032F1A2A438324D0C0EFA2900000032F1A2
SHA1 Hash           : 85b37ce3e2fce0f86f7847000eafca0a9c5df274
SubjKeyID           : c16fc96ae4670ac21b219434caae3a9f68b54ca2
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2021 (512 bits)
Not valid before    : 05/03/2021  10:56:32 UTC
Not valid after     : 05/06/2021  11:06:32 UTC
PrivateKey Link     : Certificate from container. No link to key
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2021_CRYPTO-PRO Test Center 2.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO Test Center 2.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.4
                      1.3.6.1.5.5.7.3.2
                      1.3.6.1.4.1.311.10.3.12
=============================================================================

[ErrorCode: 0x00000000]

Просмотр корневых сертификатов:

Читайте также:  Каково назначение сертификата ключа ЭЦП?

Разблокировка pin-кода[править]

Для того чтобы разблокировать PIN-код необходимо выполнить команду (потребуется ввести so-pin карты, а затем дважды ввести новый PIN-код):

Смена pin-кода[править]

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

Создание запроса на сертификат[править]

Создание запроса на получение сертификата средствами КриптоПро:

Например:

$ cryptcp -creatrqst 
-dn "E=ivanov@mail.mail,CN=Иванов Иван Иванович,SN=Иванов,G=Иван Иванович,C=RU,L=Калининград,ST=39 Калининградская обл.,street=Пр-т Победы 14 кв.3" 
-provtype 80 -nokeygen 
-cont '\.Aktiv Co. Rutoken S 00 00Rutoken' 
-certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" rutoken.req
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.
Запрос успешно создан и сохранен в файле.
[ErrorCode: 0x00000000]

Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.

Создание и подпись запроса на сертификат

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

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

Следующие действия нужно выполнять на вашей второй системе (Linux Debian, Ubuntu или дистрибутиве, который является производным от любой из этих систем). Это может быть другой удаленный сервер или локальная машина Linux – например, ноутбук или компьютер.

Пакет openssl по умолчанию предустановлен в большинстве дистрибутивов Linux, но если вы не уверены в этом, запустите такую команду:

sudo apt updatesudo apt install openssl

По запросу введите y, чтобы продолжить установку. Теперь вы готовы создать тестовый запрос с помощью openssl.

Первое, что необходимо сделать для создания CSR, – это создать закрытый ключ с помощью openssl. Давайте создадим каталог practice-csr, а затем сгенерируем в нем ключ. Мы создадим этот запрос для условного сервера 8host-server (не для идентификации пользователя или другого ЦС).

mkdir ~/practice-csrcd ~/practice-csropenssl genrsa -out 8host-server.keyGenerating RSA private key, 2048 bit long modulus (2 primes). . .. . .e is 65537 (0x010001)

Теперь, когда у вас есть закрытый ключ, вы можете создать соответствующий запрос с помощью утилиты openssl. Вам будет предложено заполнить несколько полей. Вы можете ввести точку (.), если хотите оставить поле пустым, но учтите, что в настоящих запросах на сертификаты так лучше не делать, в них следует использовать действительные данные о вашем местоположении и организации.

openssl req -new -key 8host-server.key -out 8host-server.req. . .——Country Name (2 letter code) [XX]:USState or Province Name (full name) []:New YorkLocality Name (eg, city) [Default City]:New York CityOrganization Name (eg, company)

[Default Company Ltd]:MyOrganizationOrganizational Unit Name (eg, section) []:CommunityCommon Name (eg, your name or your server’s hostname) []:8host-serverEmail Address []:Please enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []:An optional company name []:

Если вы хотите автоматически добавить эти значения прямо в вызов команды openssl (чтобы не вводить их через интерактивные окна), передайте аргумент -subj. Обязательно отредактируйте условные значения, указав вместо них свои.

openssl req -new -key 8host-server.key -out server.req -subj /C=US/ST=New York/L=New York City/O=MyOrganization/OU=Community/CN=8host-server

Чтобы проверить содержимое вашего запроса, вы можете просмотреть файл запроса:

openssl req -in 8host-server.req -noout -subjectsubject=C = US, ST = New York, L = New York City, O = MyOrganization, OU = Community, CN = 8host-server

Если вы довольны вашим тестовым запросом на сертификат, скопируйте файл 8host-server.req на свой сервер ЦС, используя утилиту scp:

scp 8host-server.req 8host@your_ca_server_ip:/tmp/8host-server.req

Вы создали запрос на подпись сертификата для условного сервера 8host-server. В реальном сценарии запрос может быть предназначен для промежуточного веб-сервера или сервера разработки, который нуждается в TLS сертификате для целей тестирования. Также запрос может исходить от сервера OpenVPN, которому нужен сертификат, чтобы пользователи могли подключаться к VPN. Далее мы перейдем к подписанию запроса с помощью закрытого ключа сервера ЦС.

Создание и проверка подписи[править]

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

$ cryptcp -sign -dn E=ivanov@mail.mail -der my_file.odt 
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.

Будет использован следующий сертификат:
Субъект:11223344556, 102301111222, Пр-т Победы 14 кв.3, Калининград, 39 Калининградская обл., RU, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович
Действителен с 27.02.2021 13:41:47 по 27.05.2021 13:51:47

Цепочки сертификатов проверены.
Папка './':
my_file.odt... Подпись данных...    
    
Подписанное сообщение успешно создано.
[ErrorCode: 0x00000000]

На выходе появится файл my_file.odt.sig, содержащий как сам подписываемый файл, так и электронную подпись.
Для проверки прикреплённой подписи выполните команду:

$ cryptcp -verify my_file.odt.sig
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.

Найдено сертификатов: 2
Цепочки сертификатов проверены.
Папка './':
my_file.odt.sig... Проверка подписи...     
Автор подписи: 11223344556, 102301111222, Пр-т Победы 14 кв.3, Калининград, 39 Калининградская обл., RU, ivanov@mail.mail, Иван Иванович, Иванов, Иванов Иван Иванович
 Подпись проверена.
[ErrorCode: 0x00000000]

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

Для создания откреплённой (detached) подписи необходимо заменить ключ -sign на -signf:

Проверка откреплённой подписи:

Внимание! Rutoken S — не является активным ключевым носителем — в нем нет аппаратной поддержки алгоритмов, а для использования RSA в opensc < 0.12 были реализованы выгрузкаприватного (!!!) ключа из Rutoken S и работа с этим ключом через openssl.

Создание ключевой пары[править]

Создание ключевой пары по алгоритму ГОСТ-2001 (PIN-код пользователя указывается в опции —pin, или запрашивается, если опцию не задать):

Создание ключевой пары RSA 2048 (запрашивается PIN-код пользователя):

Примечание: Рекомендуемая длина ключа RSA — не ниже 2048 бит.

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

Создание контейнера[править]

Создание контейнера на токене/смарт-карте:

При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:

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

После этого необходимо предъявить PIN-код пользователя.

После указания PIN-кода снова будет предложено перемещать указатель мыши.

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

Просмотр подробной информации о контейнере:

Удалить контейнер можно с помощью команды:

Требования

Вам понадобится сервер Ubuntu 20.04 для обслуживания сервиса OpenVPN (этот сервер будет называться сервером ЦС). Настройте этот сервер по этому мануалу.

Сервер ЦС должен быть автономным. Он будет использоваться только для импорта, подписи и отзыва запросов на сертификат. Он не должен запускать какие-либо другие сервисы, в идеале он должен быть отключен, если вы не используете ЦС.

Удаление объекта[править]

Для удаления объекта необходимо указать его тип и идентификатор (id) или название (label). Открытый и закрытый ключ удаляются отдельно.

Типы объектов:

  • privkey – закрытый ключ;
  • pubkey – открытый ключ;
  • cert – сертификат.

Управление сертификатами[править]

Проверяем что на устройстве есть сертификат.

Если после строчки 

Using slot 0 with a present token (0x0) 

нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно следуя пункту 4.1

Если после строчки

Using slot 0 with a present token (0x0)

вместо {id} нужно подставить ID который вы увидите в выводе предыдущей команды команды

В случае, если файл cert.crt создан переходим к пункту 5

генерируем ключевую пару 

  • key_id — ID ключа на токене
  • paramset — используемые параметры эллиптической кривой:
    • A — набор параметров с OID 1.2.643.2.2.35.1;

    • B — набор параметров с OID 1.2.643.2.2.35.2;

    • C  — набор параметров с OID 1.2.643.2.2.35.3;

    • XA — набор параметров с OID 1.2.643.2.2.36.0;

    • XB — набор параметров с OID 1.2.643.2.2.36.1;

  • pin — PIN-код токена

Установка «рутокен плагин»[править]

Рутокен Плагин представляет собой решение для электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов.
Плагин необходим для связи USB-устройств c браузером, он позволяет опознавать и работать с ними. Для того чтобы установить плагин, необходимо загрузить соответствующий установочный файл и запустить его

Читайте также:  Смена пароля в лк на сайте фнс: как это сделать - ГБУ СО «Тракторозаводский центр социального обслуживания населения»

Чтобы установить «Рутокен плагин» необходимо:

  1. Загрузить «Рутокен плагин» со страницы по ссылке (выбрать пакет формата «rpm»):
    Загрузка «Рутокен плагин»
  2. Установить «Рутокен плагин». Для этого в контекстном меню скаченного файла выбрать пункт «Открыть в Установка RPM». В открывшемся окне нажать кнопку «Установить»:
    Установка пакетов RPM
    Ввести пароль администратора системы и нажать кнопку «ОК»:
    Ввод пароля администратора системы
    В открывшемся окне нажать кнопку «Установить»:
    Установка пакетов RPM
    Или установить «Рутокен плагин», выполнив из папки с загруженным пакетом команду (под правами root):
  3. Перезапустить браузер.
  4. Убедиться, что плагин установлен и включен. Сделать это можно на странице about:addons (или about:plugins в более ранних версиях Mozilla Firefox):
    Рутокен плагин

Установка драйвера для рутокен эцп 2.0

Для работы в МОТП с ключом ЕГАИС-алкоголь требуется, чтобы у Вас была установлена свежая версия драйвера (рекомендуем версию 4.5 и выше). Посмотреть версию установленного драйвера можно в Панели управления Рутокен, которую можно найти тут: Пуск — Программы (или Все программы)


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

Установка программ для работы электронной подписи

Для работы электронной подписи требуется наличие актуальной версии программы КриптоПРО CSP и плагина КриптоПРО ЭЦП browser plugin. Если эти программы уже установлены на вашем компьютере, то можете пропустить этот шаг инструкции.

Внимание! Установка программ для электронной подписи на ваш компьютер самому компьютеру не навредит, но может нарушить работу электронной подписи. Поэтому мы не рекомендуем самостоятельно заниматься установкой и настройкой компонентов электронной подписи, а доверить это специалистам! Наши специалисты оказывают услугу по настройке рабочего места для МОТП всего за 1000 рублей!

Утилита pkcs11-tool[править]

Примечание:

С форума Рутокен: Если Вы хотите работать через opensc-pkcs11.so, то Вы должны обязательно предварительно отформатировать токен через pkcs15-init, а затем создавать и работать с ключами только через opensc-pkcs11.so.

Если Вы хотите работать через наш PKCS#11, то лучше всего форматировать через
Утилиту администрирования Рутокен, а затем создавать и работать с ключами только через наш PKCS#11. Это самый поддерживаемый путь. (не для Рутокен S??)

Вы можете отформатировать токен через pkcs15-init и работать с нашим PKCS#11. Но в этом случае через opensc-pkcs11.so ничего не будет доступно.

В состав opensc входит универсальная утилита pkcs11-tool, которой можно «подложить», например, библиотеку PKCS#11 для работы с Рутокен ЭЦП 2.0 и с ее помощью «управлять» Рутокенами.

Заключение

В этом мануале вы научились создавать частный центр сертификации на автономном сервере Ubuntu 20.04 с помощью пакета Easy-RSA. Вы также узнали, как работает модель доверия между сторонами, которые используют ваш ЦС. Вы создали и подписали запрос на сертификат (CSR) для условного сервера, а затем научились отзывать сертификаты.

Теперь вы можете выдавать сертификаты пользователям и использовать их с такими сервисами, как OpenVPN. Также ваш ЦС можно использовать для защиты веб-серверов промежуточной среды и среды разработки. В разработке сертификаты TLS могут обеспечить максимально возможное соответствие кода и рабочих сред.

Опционально: создание запросов на подпись и отзыв сертификатов

Следующие разделы данного мануала выполнять не обязательно. Если вы выполнили все предыдущие разделы, у вас уже есть полностью готовый центр сертификации, который можно использовать (например, в качестве основы для выполнения других мануалов). Вы можете импортировать файл ca.crt вашего ЦС и проверить сертификаты, которые были им подписаны.

Отзыв сертификата

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

Общий процесс отзыва сертификата состоит из таких этапов:

  1. Отзыв сертификата с помощью команды ./easyrsa revoke client_name.
  2. Создание нового запроса на сертификат с помощью команды ./easyrsa gen-crl.
  3. Перенос обновленного файла crl.pem на сервер или серверы, которые зависят от вашего ЦС; копирование файла в требуемый каталог или каталоги в этих системах для программ, которые к нему обращаются.
  4. Перезапуск всех сервисов, которые используют ваш ЦС и файл запроса.

Вы можете использовать этот процесс для отзыва любых ранее выданных сертификатов. Ниже мы подробно рассмотрим каждый шаг, начиная с команды revoke.

Чтобы отозвать сертификат, перейдите в каталог easy-rsa на вашем сервере ЦС:

cd ~/easy-rsa

Затем запустите скрипт easyrsa с опцией revoke, после нее укажите имя клиента, сертификат которого вы хотите отозвать. Следуя нашему примеру, Common Name сертификата – это 8host-server:

./easyrsa revoke 8host-server

Команда попросит вас подтвердить отзыв, введя yes:

Please confirm you wish to revoke the certificate with the following subject:subject=commonName                = 8host-serverType the word ‘yes’ to continue, or any other input to abort.Continue with revocation: yes. . .Revoking Certificate 8348B3F146A765581946040D5C4D590A. . .

Обратите внимание на значение в строке Revoking Certificate. Оно представляет собой уникальный серийный номер отзываемого сертификата. Если вы хотите проверить список отозванных сертификатов (об этом чуть ниже), чтобы убедиться, что в нем есть этот сертификат, вам понадобится это значение.

После подтверждения действия ЦС отзовет сертификат. Однако удаленные системы, которые используют ваш ЦС, не могут проверить, были ли отозваны какие-либо сертификаты. Пользователи и серверы по-прежнему смогут использовать отозванный сертификат до тех пор, пока список отзыва сертификатов ЦС (Certificate Revocation List, CRL) не будет распространен на все системы, использующие ваш ЦС.

Давайте создадим CRL или обновим существующий файл crl.pem.

Обновив список отзыва, вы сможете указать, какие пользователи и системы имеют действительные сертификаты в вашем ЦС.

Чтобы создать CRL, запустите команду easy-rsa с параметром gen-crl, находясь в каталоге ~/easy-rsa:

./easyrsa gen-crl

Если при создании файла ca.key вы использовали парольную фразу, вам будет предложено ввести ее. Команда gen-crl создаст файл crl.pem, содержащий обновленный список отозванных сертификатов для этого ЦС.

Затем вам нужно будет передать обновленный файл crl.pem на все серверы и клиенты, которые используют ваш ЦС. В противном случае клиенты и системы будут по-прежнему иметь доступ к сервисам и системам, которые используют ваш ЦС, поскольку они не будут знать об аннулированном статусе сертификата.

Чтобы передать файл на серверы, которые доверяют вашему ЦС, вы можете использовать команду scp.

Примечание: В этом мануале показано, как создавать и распространять CRL вручную. Но существуют и более надежные, автоматизированные методы для распространения и проверки списков отзыва, например OCSP-Stapling.

Убедитесь, что вы вошли на сервер ЦС как пользователь sudo, и запустите следующую команду, указав свой IP-адрес или DNS-имя своего сервера вместо your_server_ip:

scp ~/easy-rsa/pki/crl.pem 8host@your_server_ip:/tmp

Теперь, когда файл находится в удаленной системе, нам остается только обновить все сервисы, чтобы предоставить им новую копию списка отзыва. Мы не будем подробно останавливаться на этом этапе. В общих чертах: вам нужно скопировать файл crl.pem в то место, где сервис будет его искать, а затем перезапустить сервис с помощью systemctl.

Как только сервисы получат новый файл crl.pem, они смогут отклонять соединения от клиентов или серверов, которые используют отозванный сертификат.

Если вы хотите проверить файл CRL (например, чтобы просмотреть список отозванных сертификатов), используйте следующую команду openssl в каталоге easy-rsa на вашем сервере ЦС:

cd ~/easy-rsaopenssl crl -in pki/crl.pem -noout -text

Вы также можете запустить эту команду на любом сервере или системе, где установлен инструмент openssl с копией файла crl.pem. Например, если вы перенесли файл crl.pem в вашу вторую систему и хотите убедиться, что сертификат 8host-server отозван, вы можете использовать команду openssl, как показано ниже (но укажите свой серийный номер отзыва сертификата):

openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590ASerial Number: 8348B3F146A765581946040D5C4D590ARevocation Date: Apr  1 20:48:02 2020 GMT

Обратите внимание: команда grep используется для проверки уникального серийного номера, который вы получили при отзыве. Теперь вы можете проверить свой список отозванных сертификатов в любой системе, которая использует его для ограничения доступа пользователей и сервисов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector