Администрирование · 11 мин
Где 1С хранит сертификаты электронной подписи
Разбираем, где 1С хранит сертификаты ЭП: личное хранилище Windows, токены, файлы, настройки в программе. Поиск, проверка, перенос и типичные ошибки.
1С сама по себе не хранит сертификаты электронной подписи внутри информационной базы — она обращается к ним через криптопровайдер и хранилища операционной системы. Поэтому вопрос «где хранятся сертификаты» почти всегда означает поиск их физического расположения: в реестре Windows, на токене, в файле контейнера или в настройках самой конфигурации.
Понимание архитектуры хранения нужно в трёх типовых ситуациях: при переносе рабочего места на новый компьютер, при диагностике ошибки «сертификат не найден» и при настройке обмена с ЭДО, банками или отчётностью. Ниже разобраны все уровни, на которых сертификат может «прятаться», и способы его найти.
Важно различать два объекта: сам сертификат открытого ключа (файл .cer, он не секретный) и закрытый ключ, который хранится в защищённом контейнере. 1С подписывает документы именно закрытым ключом, а сертификат использует для идентификации и проверки.
Как устроено хранение: три уровня
Первый уровень — настройки внутри 1С. В типовых конфигурациях (БП, УТ, ERP, ЗУП) есть справочник «Сертификаты ключей электронной подписи и шифрования». В нём хранится не сам ключ, а данные сертификата: отпечаток, субъект, издатель, срок действия и привязка к пользователю или организации. По отпечатку программа ищет реальный сертификат на компьютере.
Второй уровень — хранилище сертификатов Windows. Открытые сертификаты попадают в раздел «Личное» (MY) текущего пользователя или локального компьютера. Физически они размещаются в реестре и в профиле пользователя, но штатный способ доступа — оснастка certmgr.msc или certlm.msc, а не прямой просмотр файлов.
Третий уровень — контейнер закрытого ключа. Его расположение зависит от носителя: папка на жёстком диске, ветка реестра, флешка или аппаратный токен. Именно потеря контейнера чаще всего приводит к ситуации «сертификат есть, а подписать нельзя».
Хранилище Windows: где искать физически
Личные сертификаты текущего пользователя Windows хранит в реестре по пути HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\MY, а сертификаты компьютера — в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY. Часть данных дублируется в профиле пользователя в папке %APPDATA%\Microsoft\SystemCertificates.
Редактировать эти ветки вручную не нужно: для просмотра и управления используйте оснастку. Нажмите Win+R, введите certmgr.msc (хранилище пользователя) или certlm.msc (хранилище компьютера) и откройте раздел «Личное → Сертификаты». Если сертификат виден здесь и у него есть пометка «Есть закрытый ключ, соответствующий этому сертификату» — 1С сможет его использовать.
Get-ChildItem Cert:\CurrentUser\My | Select-Object Subject, Thumbprint, NotAfter, HasPrivateKeyКоманда выше выводит список личных сертификатов пользователя с отпечатками и признаком наличия закрытого ключа. Отпечаток (Thumbprint) удобно сверить с тем, что записан в карточке сертификата в 1С, — так проверяется, тот ли ключ видит система.
Контейнеры закрытых ключей: диск, реестр, токен
Если ключ записывался на жёсткий диск или флешку через КриптоПро CSP, контейнер представляет собой папку с файлами вида header.key, masks.key, primary.key и другими. По умолчанию такие папки создаются в каталоге, который выбрал пользователь при генерации, либо в служебной директории криптопровайдера.
Если носителем был реестр, контейнер лежит в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\<SID>\Keys (для КриптоПро). Перенос такого контейнера на другой компьютер выполняется штатной функцией копирования в панели КриптоПро, а не копированием ветки реестра вручную.
Если используется токен (Рутокен ЭЦП, JaCarta, eToken), закрытый ключ находится в защищённой памяти устройства и не извлекается. На компьютере в этом случае хранится только сертификат, а при подписании 1С обращается к токену через криптопровайдер. Признак такой схемы: без вставленного токена подписание завершается ошибкой.
Варианты хранения закрытого ключа
Максимальная защита, ключ не копируется. Подходит для руководителей и казначейских подписей. Ограничение: нужен физический носитель на каждом рабочем месте.
Удобно для серверных и автоматических подписаний, ключ привязан к машине. Риск: доступ к ключу получает любой, кто имеет права на компьютер.
Простой перенос между компьютерами. Минус: файл контейнера легко скопировать незаметно, защита только паролем контейнера.
Что хранит сама 1С и где это посмотреть
В типовых конфигурациях на БСП карточки сертификатов находятся в разделе «Администрирование → Обмен электронными документами → Сертификаты ключей электронной подписи и шифрования» (в некоторых конфигурациях путь называется «Настройки электронной подписи и шифрования»). В карточке видны отпечаток, кому выдан, срок действия и назначение.
Для обмена с банками (DirectBank) настройки хранятся отдельно — в справочнике обмена с банками или в константах подсистемы. Для отчётности в контролирующие органы (1С-Отчётность) сертификат привязывается к настройкам организации и учётной записи абонента. В файловой базе все эти ссылки лежат внутри файла 1Cv8.1CD, в клиент-серверной — в таблицах СУБД, но извлекать их оттуда вручную не требуется: работа ведётся через интерфейс.
Полезно знать: удаление карточки сертификата из справочника 1С не удаляет ни сертификат из Windows, ни контейнер ключа. И наоборот — удаление сертификата из хранилища Windows оставляет «мёртвую» карточку в 1С, которая будет выдавать ошибку при подписании.
Как найти сертификат, который использует 1С
Типовая задача: 1С подписывает документы, но непонятно, где физически лежит ключ. Порядок поиска следующий. Сначала откройте карточку сертификата в 1С и скопируйте отпечаток. Затем найдите сертификат с этим отпечатком в хранилище Windows — через certmgr.msc или PowerShell.
Дальше определите расположение контейнера. В оснастке сертификатов откройте свойства сертификата: если есть закрытый ключ, криптопровайдер покажет имя контейнера. В КриптоПро CSP на вкладке «Сервис» есть кнопка «Просмотреть сертификаты в контейнере» и функция поиска контейнеров по всем носителям — она перечислит контейнеры на дисках, в реестре и на токенах.
- 1Откройте карточку сертификата в 1С и скопируйте отпечаток (Thumbprint).
- 2Выполните в PowerShell: Get-ChildItem Cert:\CurrentUser\My и найдите сертификат по отпечатку; проверьте HasPrivateKey = True.
- 3Если сертификата нет у пользователя — проверьте хранилище компьютера: Cert:\LocalMachine\My.
- 4Откройте панель КриптоПро CSP → Сервис → найдите контейнер закрытого ключа и его носитель.
- 5Проверьте подписание тестовым документом в 1С — это финальное подтверждение, что связка работает.
Перенос на другое рабочее место
Перенос состоит из двух независимых операций: копирование сертификата и копирование контейнера закрытого ключа. Сертификат экспортируется из оснастки в файл .cer (без закрытого ключа) и импортируется на новом компьютере, либо устанавливается автоматически при копировании контейнера через КриптоПро с опцией «Установить сертификат в контейнер».
Контейнер с диска или флешки можно скопировать как обычную папку, но надёжнее использовать штатное копирование в КриптоПро CSP («Сервис → Скопировать»): оно корректно регистрирует контейнер на новом носителе. Ключ на защищённом токене скопировать нельзя — потребуется выпуск нового сертификата в удостоверяющем центре.
После переноса откройте карточку сертификата в 1С и убедитесь, что программа видит ключ: в типовых конфигурациях есть кнопка проверки или статус доступности. Если 1С не видит сертификат, чаще всего он установлен не в то хранилище (компьютера вместо пользователя) или 1С работает под другой учётной записью Windows.
Типичные ошибки и их признаки
Самая частая проблема — «сертификат найден, но закрытый ключ недоступен». Причины: контейнер на флешке, которая не подключена; контейнер остался на старом компьютере; сертификат переустановили без привязки к контейнеру. Лечится поиском контейнера в КриптоПро и повторной установкой сертификата через «Установить личный сертификат».
Вторая группа ошибок связана с правами и контекстом: сертификат установлен в хранилище пользователя, а 1С запущена под другой учётной записью или на сервере. Третья — истёкший срок действия сертификата или лицензии криптопровайдера: проверьте поле NotAfter и статус лицензии КриптоПро.
Как проверить результат
Виден в certmgr.msc в разделе «Личное», есть пометка о закрытом ключе
Сертификата нет или стоит пометка без закрытого ключа
КриптоПро находит контейнер и показывает сертификат в нём
Контейнер не найден ни на одном носителе
Тестовое подписание проходит без ошибок
Ошибка «сертификат не найден» или «нет доступа к закрытому ключу»
FAQ
Что важно запомнить
1С хранит только ссылки на сертификаты; сами сертификаты — в хранилище Windows (раздел «Личное»), а закрытые ключи — в контейнерах на диске, в реестре или на токене. Перенос требует копирования и сертификата, и контейнера, а проверка — тестовым подписанием.
Можно ли хранить сертификат прямо в базе 1С?
В типовых конфигурациях закрытые ключи в базе не хранятся — только данные сертификата и отпечаток. Некоторые решения позволяют прикрепить файл сертификата к карточке, но это копия открытой части для справки, а не рабочий ключ.
Почему 1С видит сертификат, а КриптоПро — нет?
1С показывает карточку из своего справочника, которая существует независимо от реального ключа. Если криптопровайдер контейнер не находит, ключ недоступен: проверьте носитель, права и целостность контейнера.
Где хранятся сертификаты при работе через 1С в браузере или на сервере?
Если включено подписание на сервере, сертификат и контейнер должны быть установлены на сервере 1С в хранилище той учётной записи, под которой работает служба агента сервера. Если подписание на клиенте — на компьютере пользователя, в веб-клиенте дополнительно требуется расширение работы с криптографией.
Как узнать, на каком токене записан ключ, если их несколько?
Вставьте токены по очереди и в панели криптопровайдера выполните поиск контейнеров по носителям. В КриптоПро список контейнеров показывает имя считывателя, по которому видно, на каком устройстве лежит ключ.
Что делать, если контейнер утерян вместе со старым компьютером?
Восстановить закрытый ключ невозможно — это принципиальное свойство ЭП. Нужно отозвать старый сертификат в удостоверяющем центре и выпустить новый, затем обновить настройки в 1С, ЭДО и банке.
Нужно ли заново настраивать 1С после перевыпуска сертификата?
Да. Новый сертификат имеет другой отпечаток, поэтому старая карточка в справочнике работать не будет. Добавьте новый сертификат, привяжите его к организации и пользователю и проверьте настройки обмена с ЭДО и банками.