Сертификат не имеет связи с закрытым ключом линукс

Обновлено: 04.07.2024

Пробую прочитать список сертификатов с токена, записанные под Windows.
К сожалению получаю пустой список.

При этом в Windows сертификат на этом же токене виден:

Подскажите пожалуйста с чем может быть связана проблема и как её можно решить?
Готов предоставить необходимые дополнительные данные при необходимости

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Добрый день, ilya.ermolin!

Спасибо за информацию - попробую. По результатам отпишу.

Установил КриптоПро согласно инструкции.

Такого файла в дистрибутиве не нашел - установил cprocsp-rdr-rutoken-64-3.6.1-4.x86_64.rpm
Возможно стоит дополнить инструкцию (даже вопросы к ней такие были).

КриптоПро видит сертификат:

При этом при доступен через библиотеку rtPKCS11ECP.so сертификаты так и не отображаются.
Есть ли техническая возможность организовать такое отображение под Linux?
Под Windows сертификат виден, но насколько я понимаю через CAPI интерфейс КриптоПро а не как pkcs11 устройство.

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Установил КриптоПро согласно инструкции.

Такого файла в дистрибутиве не нашел - установил cprocsp-rdr-rutoken-64-3.6.1-4.x86_64.rpm
Возможно стоит дополнить инструкцию (даже вопросы к ней такие были).

При этом при доступен через библиотеку rtPKCS11ECP.so сертификаты так и не отображаются.
Есть ли техническая возможность организовать такое отображение под Linux?
Под Windows сертификат виден, но насколько я понимаю через CAPI интерфейс КриптоПро а не как pkcs11 устройство.

Если нужно решение для просмотра сертификата на токене в графическом виде (GUI), можете воспользоваться утилитой XCA, указав в настройках путь к библиотеке librtpkcs11ecp.so, после раздел "Token" станет активным и в "Manage secure token" откроется список с сертификатами.

Если нужен терминал, то используйте pkcs11-tool, пример:
Выводим список объектов на токене

Находим интересующий вас "Certificate Object" и копируем его ID

При возникновении ошибки "Сертификат не имеет связи с закрытым ключом" необходимо выполнить проверку сертификата электронной подписи.

Алгоритм проверки электронной подписи:

В программном продукте 1С необходимо

1. перейти в раздел "Администрирование"

2. "Обмен электронными документами"

3. "Настройка электронной подписи и шифрования"

4. На вкладке "Сертификаты" открыть используемый сертификат

5. Нажать на кнопку "Проверить"


6. Ввести пароль закрытой части ключа и нажать "Проверить"

! Обращаем Ваше внимание, что программа сама увеличит количество * в поле "Пароль:" до 16 при проверке. Данное поведение является штатным и выступает дополнительной защитой конфиденциальных данных в виде количества символов в пароле. Проверка будет осуществлена на основании введенных Вами данных .


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

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

Решение: связать сертификат с закрытом ключом.

Д ля этого необходимо:

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

2. Запустить криптопровайдер и выполнить установку сертификата.



Для VIPNet CSP

В окне VIPNet CSP нажать "Установить сертификат"

В открывшемся окне необходимо выбрать директорию, куда был сохранен сертификат, выбрать сохраненный ранее сертификат и нажать "Открыть".

В открывшемся мастере установки сертификатов, нажать "Далее"

При выборе хранилища необходимо выбрать "Текущий пользователь" и нажать "Далее"

В следующем окне необходимо выбрать "Найти контейнер с закрытым ключом" и нажать "Далее".

Контейнер с закрытым ключом оперделиться автоматический. В том случае, когда контейнер не определился необходимо нажать "Обзор" и выбрать контейнер вручную, а затем нажать "Ок" и завершить установку.


Для КриптоПро CSP

Запустить КриптоПро CSP. Для этого необходимо перейти в Пуск - Панель управления - КриптоПро CSP

В открывшемся окне криптопровайдера перейти на вкладку "Сервис" и нажать "Установить личный сертификат".

В следующем окне необходимо выбрать директорию расположения файла сертификата нажав кнопку "Обзор"

Указать директорию, в которую ранее был сохранён сертификат и нажать "Открыть".

В следующем окне мастера установки сертификатов поставить галочку "Найти контейнер автоматический". Контейнер должен определиться в окне ниже. Если автоматический не удалось найти контейнер необходимо нажать "Обзор" и самостоятельно указать контейнер. Затем нажать Далее.

Затем необходимо поставить галочку "Установить сертификат (цепочку сертификатов) в контейнер", нажать "Далее" и завершить установку.

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

Работа с электронной подписью (ЭЦП) в Linux (Debian / Ubuntu)

Электронно-цифровая подпись (ЭЦП) давно уже стала неотъемлемой частью нашей жизни, позволяя удаленно взаимодействовать с органами власти, сдавать отчетность, участвовать в системах электронного документооборота (ЭДО). Все это стало особенно актуально в последнее время, когда сложная эпидемиологическая обстановка внесла серьезные коррективы в рабочий процесс, сделав упор на дистанционные технологии. Особый интерес работа с ЭЦП вызывает у пользователей Linux, действительно, данная тема пока не нашла широкого отражения, поэтому постараемся восполнить этот пробел.

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

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

Среди обычных пользователей ЭЦП называется "сертификатом", но если вы являетесь специалистом, то должны различать и понимать разницу между составляющими частями ЭЦП и не путать закрытый и открытый ключ (сертификат). Сертификаты хранятся в системном хранилище ОС, а вот для хранения закрытых ключей есть варианты:

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

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

Второй вопрос - браузеры. Так повелось, что основная разработка средств электронной подписи ориентируется на браузеры на основе WebKit, поэтому мы рекомендуем использовать для работы Google Chrome, для используемого по умолчанию Firefox мы так и не смогли нормально настроить работу с отечественной криптографией. Также можно использовать Яндекс.Браузер или Спутник, хотя последний может нестабильно работать в последних выпусках Linux, например, в Xubuntu 20.04.

e-sign-linux-001.jpg

На этом, пожалуй, закончим вводную часть и перейдем к практическим примерам.

Госуслуги

Основной по своей значимости портал для взаимодействия с государственными органами. Для входа на Госуслуги в Linux можно использовать только аппаратные ключи (токены), криптопровайдеры не поддерживаются. Поэтому если вам нужны только Госуслуги, то Крипто-Про вам устанавливать не нужно. Для работы с Госуслугами вам потребуется IFCPlugin, который можно загрузить со следующей страницы, на нее же вы будете перенаправлены автоматически при попытке входа с помощью электронной подписи без установленного плагина.

e-sign-linux-002.jpg

Система корректно распознает текущую ОС и автоматически предлагает к скачиванию нужную версию плагина в виде DEB-пакета. Но не будем спешить с его установкой, для работы с токенами нам потребуется установить дополнительные библиотеки, в частности pcscd:

Если вы используете токены, то мы рекомендуем установить данную библиотеку вне зависимости от того, будете ли вы использовать Госуслуги или нет, она вам потребуется для работы с аппаратным ключом.

Затем откройте терминал в директории со скачанным плагином, повысьте права до суперпользователя и установите его командой:

Перезапустите браузер и снова попробуйте войти на портал Госуслуг, в этот раз все должно увенчаться успехом.

e-sign-linux-003.jpg

Установка Крипто-Про

Крипто-Про самый распространенный и популярный отечественный криптопровайдер. Это коммерческое ПО и для установки вам понадобится серийный номер, без него будет активирована триальная версия на три месяца. Обычно лицензия на Крипто-Про выдается вместе с ЭЦП, либо использующим его ПО (например, система сдачи отчетности), поэтому если вы затрудняетесь найти лицензию, то обратитесь к своему поставщику ЭЦП.

Теперь пару слов о ключах, если они располагаются на токене или флеш-карте, то ничего делать не надо, а вот если они находятся в реестре, то их нужно скопировать на переносной носитель (флешку). Для этого откройте Крипто-Про и перейдите на вкладку Сервис, в разделе Контейнер закрытого ключа нажмите Скопировать и в открывшемся окне выберите нужный контейнер из реестра.

e-sign-linux-004.jpg

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

e-sign-linux-005.jpg

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

e-sign-linux-006.jpg

В этом случае вам не потребуется полноценной регистрации, достаточно будет заполнить несколько полей, сайт корректно определяет ОС клиента и сразу предлагает скачать нужный пакет, обратите внимание, что Крипто-Про для Linux поддерживает только 64-разрядные системы.

e-sign-linux-007.jpg

Распакуйте полученный архив в любое удобное место и перейдите в терминал, этом можно сделать, кликнув правой кнопкой мыши в любом свободном месте и выбрав Открыть терминал.

И запустим установку Крипто-Про командой:

Продукт имеет текстовый установщик, который последовательно проведет вас по всем этапам. Набор установки по умолчанию следует дополнить пунктом Поддержка токенов и смарт-карт, также у вас должна быть установлена библиотека pcscd.

e-sign-linux-009.jpg

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

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

e-sign-linux-010.jpg

Альтернативой хранения ключей на флешке может быть размещение контейнеров на жестком диске, для этого нажмите Скопировать контейнер и выберите в качестве носителя Directory:

e-sign-linux-011.jpg

На этом установку Крипто-Про можно считать законченной.

Установка КриптоПро ЭЦП Browser plug-in

Но одного криптопровайдера нам будет недостаточно, для работы с ЭЦП на различных государственных порталах нам потребуется плагин для поддержки со стороны браузера, его можно скачать на следующей странице. Распакуем полученный архив в удобное место, он содержит по три пакета для DEB и RPM-систем. Для установки выполним в терминале с правами суперпользователя:

e-sign-linux-012.jpg

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

e-sign-linux-013.jpg

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

вопросы

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

Что может послужить причиной такой ошибки

ошибка в контейнере закрытого ключа и причины её появления

  • установка сертификата впервые;
  • экспортирование данных на внешний носитель;
  • попытка просмотра ключей в контейнерах ключей;
  • загрузка информации на компьютер извне.

В целях устранения ошибки обычно бывает достаточно произвести корректную ручную переустановку сертификата.

Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа

Для начала запускаем «КриптоПро» нажатием кнопки «Пуск». Затем выбираем «Настройку», в возникающем на мониторе окне заходим в опцию панели управления, далее «сервис – установить личный сертификат».

программа криптопро предложит указать место хранение сертификата

Далее, через кнопку «обзор» указываем путь, где сохранен открытый ключ – файл с расширением *.cert или *.crt

Необходимо выбрать файл и открыть его с помощью криптопро

Жмём «Далее», в мастере установки сертификата мы увидим путь, который указывали до нашего сертификата.

Убедившись, что криптопро верно распознало путь установки сертификата, подтверждаем установку

Нам отображается информация, содержащаяся в открытом ключе на пользователя, жмём «далее»

Перед импортом сертификата надо проверить содержащуюся в нем информацию

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

  • «найти контейнер автоматически
  • вручную через «обзор»

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

Мы рекомендуем использовать функцию КриптоПро «найти контейнер автоматически» или указать его вручную через «обзор»

Самый простой вариант выбрать автоматический поиск, затем после «обнаружения» необходимого контейнера, мы увидим заполненную строчку с его именем и после жмём «Далее»

после того, как указан контейнер, можно продолжить установку

Личный сертификат пользователя всегда устанавливается в хранилище «Личное», можно выбрать как вручную, так и КриптоПро может сделать это за вас по умолчанию, затем подтверждаем установку цепочки сертификатов и жмём «Далее»

Важно! Не забудьте поставить галку в настройках КриптоПро «установить сертификат (цепочку сертификатов) в контейнер

>

В случае успешной установки КриптоПро выдаст окно с информацией об окончании процедуры и жмём «Готово»

Можно завершать установку сетификата

Затем появится окно с подтверждением данной операции, жмём «ДА»

Криптопро предложит перезаписать сертификат – соглашаемся

В следующем окне увидим информацию о том, что процесс окончен успешно. Сертификат установлен в контейнер закрытого ключа.

Готово. Сертификат установлен

Особенности версий КриптоПро

С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.

Читайте также: