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

Не найден личный сертификат при подписании XML: причины и порядок проверки

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

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

Что означает сообщение

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

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

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

Сертификат, подпись, закрытый ключ, контейнер и носитель — разные объекты. Не смешивайте установку сертификата с действиями над контейнером ключа. Для обращения в поддержку отдельно укажите, где виден сертификат и какой носитель используется: это позволит обсуждать конкретную проверку, а не неопределенную «неисправность подписи».

Быстрая сводка: симптом и вероятная причина

Что наблюдаетсяЧто проверитьКуда смотреть
В личном хранилище сертификата нетНаличие нужного сертификата и учетную запись пользователяШаг 2
В пути сертификации виден только ваш сертификат или цепочка неполнаяСостав цепочки и сообщения о ее проверкеШаг 1
Сертификат в списке есть, но подпись не создаетсяДоступность закрытого ключа и подключение используемого носителяШаг 3
Раньше подпись работала, после выпуска нового сертификата пересталаКакой сертификат сейчас выбран в программеШаг 5
Ошибка только на одном компьютере, на другом все работаетРазличия в хранилище, учетной записи или установленном ПОШаги 2, 4

Шаг 1. Проверьте цепочку сертификации

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

  1. Откройте доступный в вашем окружении просмотр сертификатов.
  2. Найдите личный сертификат, которым собираетесь подписывать документ.
  3. Откройте сведения именно об этом сертификате, сверив владельца и другие доступные идентификаторы.
  4. Просмотрите путь сертификации и сообщения о состоянии цепочки, если они доступны.

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

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

Шаг 2. Убедитесь, что сертификат лежит в личном хранилище текущего пользователя

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

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

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

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

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

Шаг 3. Проверьте закрытый ключ и носитель

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

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

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

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

Шаг 4. Проверьте криптопровайдер и срок действия

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

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

Если вместо исходной ошибки программа сообщает об отзыве сертификата, зафиксируйте новое сообщение отдельно. Порядок работы с ошибкой «Сертификат отозван» не следует подменять повторной установкой сертификата или настройкой его выбора.

Шаг 5. Выберите сертификат в программе заново

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

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

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

Если подписывается именно XML

При диагностике XML-документа зафиксируйте не только расширение файла, но и место появления ошибки:

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

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

Когда проблема остается

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

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

Ответы на частые вопросы

Почему ошибка появилась, хотя вчера подпись работала?

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

Достаточно ли установить отдельный файл сертификата, чтобы подпись заработала?

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

Программа видит несколько сертификатов, какой выбрать?

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

Нужно ли что-то делать с токеном при замене компьютера?

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

Что делать, если сертификата нет в списке выбора, но в оснастке он виден?

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

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

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

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

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

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

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