Подобрать подпись
СКБ Контур

В контейнере закрытого ключа отсутствуют сертификаты: как исправить ошибку КриптоПро

Сообщение КриптоПро «В контейнере закрытого ключа отсутствуют сертификаты» означает, что программа нашла контейнер закрытого ключа, но не обнаружила внутри него сертификат — это не значит, что ключ потерян.

Сообщение КриптоПро «В контейнере закрытого ключа отсутствуют сертификаты» означает именно то, что написано: программа нашла контейнер закрытого ключа, но не обнаружила внутри него соответствующий сертификат.

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

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

В большинстве случаев проблема решается установкой правильного файла .cer через КриптоПро с привязкой к существующему контейнеру.

Главное — не удалять контейнер и не форматировать токен до окончания диагностики.

Что означает эта ошибка

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

  • закрытый ключ — необходим для создания подписи;
  • сертификат ключа проверки электронной подписи — содержит открытый ключ и сведения о владельце.

Закрытый ключ хранится в контейнере. Сам контейнер может находиться:

  • на Рутокене;
  • на JaCarta;
  • в реестре Windows;
  • на съемном носителе;
  • в другом поддерживаемом хранилище.

Сертификат при этом может храниться:

  • непосредственно внутри контейнера;
  • в хранилище сертификатов Windows;
  • отдельно в виде файла .cer или .crt.

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

Поэтому сообщение:

В контейнере закрытого ключа отсутствуют сертификаты

лучше читать так:

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

Это совсем не то же самое, что:

Контейнер закрытого ключа не найден.

Во втором случае проблема уже касается доступа к самому закрытому ключу.

Сначала проверьте: контейнер действительно существует

Если КриптоПро выдает именно сообщение об отсутствии сертификатов в выбранном контейнере, программа этот контейнер уже обнаружила.

Это хороший признак.

Для дополнительной проверки можно открыть:
КриптоПро CSP → Сервис → Протестировать → Обзор
или в новых версиях:
Инструменты КриптоПро → Контейнеры

Выберите нужный контейнер и запустите его тестирование.

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

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

Самый частый способ исправления: установить сертификат из файла .cer

Если у вас сохранился сертификат электронной подписи в формате .cer, проблема обычно решается через установку личного сертификата.

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

В классическом интерфейсе КриптоПро CSP

Откройте:
КриптоПро CSP → Сервис → Установить личный сертификат

Дальше:

  1. Нажмите «Обзор».
  2. Выберите файл сертификата .cer.
  3. Нажмите «Далее».
  4. Выберите контейнер закрытого ключа либо включите «Найти контейнер автоматически».
  5. Убедитесь, что найден правильный контейнер.
  6. Выберите хранилище «Личное».
  7. При наличии параметра установки сертификата в контейнер включите его.
  8. Нажмите «Готово».

Такой порядок установки рекомендуют специалисты КриптоПро именно для ситуации, когда контейнер существует, а сертификата в нем нет.

После этого повторно откройте:
Сервис → Просмотреть сертификаты в контейнере
и выберите тот же контейнер.

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

Как исправить ошибку в КриптоПро CSP 5.0

В КриптоПро CSP 5.0 можно использовать приложение «Инструменты КриптоПро».

Если сертификат уже находится внутри контейнера:

  1. откройте Инструменты КриптоПро;
  2. перейдите на вкладку «Контейнеры»;
  3. выберите нужный контейнер;
  4. нажмите «Установить сертификат».

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

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

В КриптоПро CSP 5.0 R3 также появилась настройка «Добавлять личный сертификат в контейнер». Если она включена, при установке соответствующего сертификата он дополнительно записывается в контейнер.

Что значит «Установить сертификат в контейнер»

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

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

Актуальная инструкция КриптоПро описывает три варианта:

  • параметр не установлен — сертификат помещается в системное хранилище;
  • выбран вариант записи сертификата — сертификат дополнительно сохраняется в контейнер;
  • выбран вариант записи цепочки — вместе с личным сертификатом могут быть записаны сертификаты его цепочки.

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

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

Сертификат уже установлен в Windows, но КриптоПро все равно пишет об ошибке

Это очень распространенная ситуация.

Например:

  1. сертификат уже присутствует в хранилище «Личное»;
  2. сайт или программа даже используют электронную подпись;
  3. вы открываете «Просмотреть сертификаты в контейнере»;
  4. КриптоПро пишет, что в контейнере сертификатов нет.

Противоречия здесь нет.

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

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

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

Как проверить, связан ли сертификат с закрытым ключом

Наличие сертификата в папке «Личное» еще не гарантирует полноценную работу ЭП.

Нужно проверить, существует ли связь с соответствующим закрытым ключом.

Нажмите:
Win + R
введите:
certmgr.msc

Откройте:
Личное → Сертификаты

Найдите нужный сертификат и откройте его.

Если сертификат корректно связан с закрытым ключом, Windows обычно показывает сообщение:

«Есть закрытый ключ, соответствующий этому сертификату»

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

Что делать, если файла .cer нет

Если контейнер существует, но сертификат отсутствует и отдельного файла .cer у вас нет, сначала выясните, где была выпущена электронная подпись.

Возможные варианты:

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

Не удаляйте контейнер только потому, что у вас сейчас нет .cer.

Закрытый ключ может быть полностью исправен.

Проверьте старый компьютер

Если электронная подпись ранее работала на другом компьютере:

  1. откройте certmgr.msc;
  2. найдите сертификат в разделе «Личное»;
  3. откройте его свойства;
  4. выберите «Состав → Копировать в файл»;
  5. экспортируйте сертификат без закрытого ключа в .cer.

После этого перенесите .cer на нужный компьютер и установите его через КриптоПро с привязкой к существующему контейнеру.

Проверьте документы от удостоверяющего центра

При выпуске ЭП удостоверяющий центр мог предоставить сертификат отдельным файлом.

Ищите файлы с расширениями:
.cer
или
.crt

Не путайте их с:
.sig
.p7s
или другими файлами электронной подписи документов.

Обратитесь в удостоверяющий центр

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

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

Ошибка появилась сразу после выпуска новой электронной подписи

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

Получается:

контейнер с закрытым ключом уже есть → сертификата еще нет.

Такое состояние технически возможно и как раз приводит к сообщению об отсутствии сертификатов в контейнере.

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

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

Возможно, нужно:

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

В такой ситуации переустанавливать КриптоПро бессмысленно.

Ошибка появилась после переноса электронной подписи

Еще один распространенный сценарий — переезд на другой компьютер.

Например:

  1. контейнер закрытого ключа перенесли;
  2. КриптоПро его видит;
  3. личный сертификат на новый компьютер не установили;
  4. при просмотре контейнера появляется ошибка.

Если сертификат находился только в системном хранилище старого компьютера, вместе с самим контейнером он мог не перенестись.

Решение:

  1. экспортировать .cer со старого компьютера;
  2. перенести его;
  3. подключить носитель с контейнером;
  4. установить .cer через «Установить личный сертификат»;
  5. связать его с нужным контейнером.

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

Ошибка после импорта PFX

Ситуация встречается и после переноса электронной подписи через PFX/P12.

PFX может содержать:

  • сертификат;
  • закрытый ключ.

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

Специалисты КриптоПро описывали сценарий, при котором после импорта PFX:

  • ключевая пара создавалась в контейнере;
  • сертификат устанавливался отдельно в личное хранилище;
  • при просмотре контейнера появлялось сообщение об отсутствии сертификатов.

Для исправления предлагалось экспортировать сертификат в .cer и затем установить его средствами КриптоПро с записью в соответствующий контейнер.

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

Сначала проверьте:

  • есть ли сертификат в «Личном» хранилище;
  • написано ли в его свойствах, что имеется соответствующий закрытый ключ;
  • проходит ли тестирование контейнера.

Что делать, если КриптоПро не может автоматически найти контейнер

При установке .cer функция автоматического поиска контейнера может не найти подходящий ключ.

В таком случае сначала убедитесь, что сам контейнер доступен.

Проверьте:
КриптоПро CSP → Сервис → Протестировать → Обзор

Если нужного контейнера нет в списке, проблема уже не в сертификате.

Возможны причины:

  • Рутокен не подключен;
  • КриптоПро не видит токен;
  • не настроен нужный считыватель;
  • отсутствует поддержка PKCS#11;
  • контейнер остался на другом компьютере;
  • контейнер неправильно перенесен;
  • ключ поврежден.

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

Ошибка «Открытый ключ не соответствует закрытому ключу»

Если при установке сертификата КриптоПро сообщает, что открытый ключ сертификата не соответствует закрытому ключу контейнера, выбран не тот сертификат или не тот контейнер.

Нельзя привязать произвольный .cer к любому существующему контейнеру.

У каждой ключевой пары математически связаны:

  • закрытый ключ в контейнере;
  • соответствующий ему открытый ключ в сертификате.

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

  • владельца;
  • серийный номер сертификата;
  • срок действия;
  • нужный контейнер.

Не пытайтесь «заставить» КриптоПро установить несовпадающий сертификат.

Нужно найти именно тот .cer, который был выпущен на основе открытого ключа данного контейнера.

Если сертификат просрочен

Допустим, вы нашли старый .cer и успешно связали его с контейнером, но срок сертификата уже закончился.

Это исправит структуру и связь сертификата с контейнером, но не сделает просроченную электронную подпись действующей для создания новых подписей.

Проверьте период:
Действителен с → Действителен по

Если срок сертификата истек, потребуется выпуск нового действующего сертификата в предусмотренном для вашей ЭП порядке.

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

Если сертификат был отозван

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

Ошибка «В контейнере закрытого ключа отсутствуют сертификаты» относится к наличию сертификата, а не к его юридическому статусу.

После установки обязательно дополнительно проверьте:

  • срок действия;
  • статус отзыва;
  • цепочку доверия.

Успешная установка .cer не доказывает, что сертификат сейчас действителен.

Нужно ли устанавливать корневые сертификаты

Корневые и промежуточные сертификаты удостоверяющего центра выполняют другую задачу: они нужны для корректного построения цепочки доверия.

Их отсутствие может приводить к сообщениям вроде:

  • «Не удается построить цепочку сертификатов»;
  • «Сертификат выдан недоверенным центром»;
  • «Не удалось проверить сертификат».

Но отсутствие корневого сертификата обычно не является причиной сообщения:

«В контейнере закрытого ключа отсутствуют сертификаты».

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

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

Не удаляйте контейнер для исправления ошибки

Это одна из самых опасных ошибок пользователя.

Логика бывает такой:

«Сертификата нет — наверное, контейнер сломан. Удалю и создам новый».

Делать этого не нужно.

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

Файл .cer не является резервной копией закрытого ключа.

Из сертификата нельзя восстановить ключ, находившийся в удаленном контейнере.

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

  • удалять контейнер;
  • форматировать Рутокен;
  • инициализировать токен;
  • удалять файлы контейнера вручную;
  • редактировать их;
  • копировать внутрь контейнера .cer через Проводник.

Сертификат устанавливается штатными средствами КриптоПро.

Не копируйте .cer вручную в папку контейнера

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

  • header.key
  • masks.key
  • name.key
  • primary.key

и пытается просто положить туда файл сертификата.

Это не является правильной установкой.

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

Используйте только:
Установить личный сертификат
или соответствующую функцию Инструментов КриптоПро.

Как понять, что проблема исправлена

После установки сертификата выполните несколько проверок.

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

Откройте:
КриптоПро CSP → Сервис → Просмотреть сертификаты в контейнере

Выберите нужный контейнер.

Если сертификат записан непосредственно туда, вместо сообщения об ошибке появятся сведения:

  • владелец;
  • издатель;
  • серийный номер;
  • срок действия.

2. Проверьте хранилище Windows

Откройте:
certmgr.msc
и перейдите:
Личное → Сертификаты

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

3. Проверьте связь с закрытым ключом

Откройте сертификат.

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

4. Протестируйте контейнер

Используйте:
КриптоПро CSP → Сервис → Протестировать

Если тест проходит успешно, КриптоПро имеет доступ к закрытому ключу.

5. Проверьте подпись в рабочем сервисе

После локальной диагностики попробуйте выполнить обычную операцию:

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

Только после этого проблему можно считать полностью устраненной.

Если сертификат установлен, но сайт все равно его не видит

В таком случае исходная ошибка, скорее всего, уже исправлена.

Если:

  • контейнер находится;
  • сертификат установлен;
  • есть связь с закрытым ключом;
  • тестирование КриптоПро проходит;

но на Госуслугах, электронной торговой площадке или в другом веб-сервисе сертификат отсутствует, проверяйте следующий уровень:

  • КриптоПро ЭЦП Browser plug-in;
  • расширение браузера;
  • совместимость браузера;
  • срок действия сертификата;
  • требования конкретного сервиса;
  • цепочку доверия.

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

Когда потребуется новая электронная подпись

Сама ошибка «В контейнере закрытого ключа отсутствуют сертификаты» обычно не является основанием для перевыпуска ЭП.

Новую подпись придется получать только если выяснится более серьезная проблема, например:

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

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

Порядок действий при ошибке

Если КриптоПро сообщает, что в контейнере закрытого ключа отсутствуют сертификаты, действуйте последовательно:

  1. Не удаляйте контейнер.
  2. Убедитесь, что контейнер отображается и проходит тестирование.
  3. Проверьте certmgr.msc → Личное → Сертификаты.
  4. Найдите соответствующий файл .cer.
  5. Если файла нет — получите его со старого компьютера или у удостоверяющего центра.
  6. Откройте КриптоПро CSP → Сервис → Установить личный сертификат.
  7. Выберите .cer.
  8. Используйте автоматический поиск контейнера или укажите его вручную.
  9. Установите сертификат в хранилище «Личное».
  10. При необходимости включите запись сертификата в контейнер.
  11. Проверьте наличие связи с закрытым ключом.
  12. Протестируйте контейнер.
  13. Проверьте электронную подпись в рабочем сервисе.

В большинстве случаев этого достаточно.

Частые вопросы

Что значит «В контейнере закрытого ключа отсутствуют сертификаты»?

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

Можно ли восстановить сертификат, если контейнер сохранился?

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

Можно ли создать новый .cer из закрытого ключа?

Нет, самостоятельно «сгенерировать заново» старый сертификат из контейнера нельзя. Сертификат выпускается удостоверяющим центром. Если его копии нигде нет, обратитесь в УЦ или сервис, через который оформлялась подпись.

Почему сертификат есть в Windows, а внутри контейнера его нет?

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

Обязательно ли записывать сертификат внутрь контейнера?

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

Как узнать, что сертификат связан с контейнером?

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

Что делать, если при установке сертификата контейнер не находится?

Сначала проверьте сам контейнер через КриптоПро. Если его нет в списке, проблема уже связана с носителем, считывателем, PKCS#11, реестром или переносом закрытого ключа.

Что делать, если открытый ключ не соответствует закрытому?

Выбран неправильный файл .cer или неправильный контейнер. Найдите сертификат именно от той ключевой пары, которая находится в контейнере.

Нужно ли переустанавливать КриптоПро?

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

Поможет ли установка корневого сертификата?

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

Можно ли просто положить .cer на флешку рядом с файлами контейнера?

Нет. Копирование файла через Проводник не является установкой сертификата в контейнер. Используйте средства КриптоПро.

Нужно ли перевыпускать ЭЦП?

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

Главное

Ошибка «В контейнере закрытого ключа отсутствуют сертификаты» чаще всего говорит не о потере электронной подписи, а о том, что КриптоПро нашел закрытый ключ, но не нашел связанный с ним сертификат непосредственно внутри контейнера.

Первое, что нужно сделать, — сохранить существующий контейнер.

После этого найдите соответствующий .cer и установите его через:
КриптоПро CSP → Сервис → Установить личный сертификат
с автоматическим поиском или ручным выбором нужного контейнера.

Затем проверьте, что сертификат появился в хранилище «Личное» и связан с соответствующим закрытым ключом.

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

Поделиться
Не только читать

Нужна подпись — подберём под вашу задачу

Определим вид подписи, посчитаем стоимость и поможем с выпуском. Быстро и без спама.

Получить консультацию