Где хранятся сертификаты в 1С:Предприятии и как их проверить
Содержание
Под словом «сертификат» в 1С обычно ищут одно из двух. Первое — программную лицензию платформы: это файл .lic в папке C:\ProgramData\1C\licenses на компьютере или сервере. Второе — сертификат электронной подписи
: он лежит в хранилище Windows (certmgr.msc → «Личное» → «Сертификаты»), а 1С видит его через криптопровайдер.
Частая ошибка — искать сертификат подписи в настройках лицензирования или, наоборот, ждать, что лицензия появится в оснастке сертификатов Windows. Это разные объекты, у них разные места хранения и разные инструменты проверки. Ниже оба случая разобраны по отдельности: от быстрой проверки до поиска по диску и программного перебора.
Что проверить до начала поиска
Сначала поймите, что именно перестало работать. Это экономит время больше, чем любая утилита.
| Симптом | Что ищем | Где искать в первую очередь |
|---|---|---|
| 1С не запускается, сообщение о том, что не обнаружена лицензия | Программную лицензию | C:\ProgramData\1C\licenses, утилита ring |
| Не подписывается документ в ЭДО или отчёт | Сертификат ЭП | Хранилище Windows, настройки ЭП в 1С |
| Сертификат виден в Windows, но не в 1С | Связь сертификата с программой | Справочник сертификатов в 1С, криптопровайдер |
| В браузере 1С не видит токен | Расширения веб-клиента | Настройки браузера, плагин криптопровайдера |
Подготовьте заранее:
- 🖥️ имя компьютера или сервера, где работает 1С (для клиент-серверной базы лицензии могут стоять на сервере);
- 👤 учётную запись Windows, под которой работает пользователь: личные сертификаты привязаны к ней;
- 🔑 права локального администратора — без них не откроется хранилище компьютера и системные папки;
- 📝 текст ошибки дословно, лучше скриншотом.
Программные лицензии 1С: где лежат и как их проверить утилитой ring
Программная лицензия 1С — это файл с расширением .lic. Платформа ищет его в нескольких местах.
| Папка | Для кого лицензия |
|---|---|
C:\ProgramData\1C\licenses | Для всех пользователей компьютера (основной вариант) |
%APPDATA%\1C\licenses | Только для текущего пользователя Windows |
/var/1C/licenses | Сервер или клиент на Linux |
Папка ProgramData по умолчанию скрыта. Наберите путь прямо в адресной строке Проводника или включите показ скрытых элементов на вкладке «Вид».
Быстрая проверка из самой 1С
Если база запускается, откройте главное меню (кнопка с тремя полосками в заголовке окна) → Справка → О программе. В окне видна информация о полученной лицензии: программная это лицензия или ключ защиты, на какое число пользователей.
Проверка через утилиту ring
Утилита ring ставится вместе с модулем license-tools из дистрибутива утилиты лицензирования. После установки команды выполняются в командной строке, запущенной от имени администратора.
:: список всех лицензий на компьютере
ring license list
:: подробности по конкретной лицензии (имя берётся из вывода list)
ring license info --name 000000000000000-0000000
:: проверка, что лицензия действительна на этом компьютере
ring license validate --name 000000000000000-0000000
В выводе list видно имя лицензии (пин-код и регистрационный номер) и файл, где она хранится. Команда validate показывает главное: совпадают ли параметры компьютера с теми, на которые лицензия активирована.
Если ring не находится, проверьте переменную PATH или перейдите в папку установки утилиты. Точный набор подкоманд вашей версии покажет ring license --help.
Лицензии на сервере 1С
В клиент-серверном варианте лицензии часто активируют на сервере. Тогда файлы ищите в той же C:\ProgramData\1C\licenses, но на сервере. Какие лицензии реально выданы сеансам, покажет утилита администрирования кластера:
rac cluster list
rac session list --cluster=<id_кластера> --licenses
В выводе второй команды для каждого сеанса видно, откуда взята лицензия: с клиента или с сервера, и из какого файла.
Аппаратные ключи
Если используется USB-ключ защиты, файлов .lic не будет. Состояние ключей смотрят в веб-интерфейсе менеджера лицензий ключа, обычно по адресу http://localhost:1947. Там видно, какой ключ подключён и сколько сеансов его занимают.
Не удаляйте и не переименовывайте файлы .lic для проверки. Восстановить программную лицензию можно только повторной активацией, а число повторных активаций по одному пин-коду ограничено. Если нужен эксперимент — скопируйте файл в другую папку.
Сертификаты электронной подписи в хранилище Windows
Сертификат ЭП для 1С состоит из двух частей: открытого сертификата и закрытого ключа в контейнере. Сертификат без ключа позволяет проверять чужую подпись, но подписывать им нельзя.
Оснастка сертификатов
- Нажмите
Win + R, введитеcertmgr.mscи нажмите Enter. Откроются сертификаты текущего пользователя. - Перейдите в
Личное→Сертификаты. - Найдите сертификат по владельцу (поле «Кому выдан») и сроку действия.
- Откройте его двойным щелчком. На вкладке «Общие» внизу должна быть строка о наличии закрытого ключа, соответствующего сертификату.
Сертификаты, установленные для всего компьютера, смотрят в certlm.msc — это хранилище локального компьютера. Оно нужно, например, когда подпись выполняется на сервере 1С от имени служебной учётной записи.
Через КриптоПро CSP
Если подпись по ГОСТ, удобнее проверять через КриптоПро:
- Откройте «КриптоПро CSP» из меню «Пуск».
- Вкладка
Сервис→Просмотреть сертификаты в контейнере…. - Нажмите «Обзор» и выберите контейнер: на токене, в реестре или на диске.
- Программа покажет сертификат из контейнера. Если его нет в «Личном», на этой же вкладке есть команда установки личного сертификата.
Через PowerShell
Быстрый список личных сертификатов пользователя со сроком действия и признаком закрытого ключа:
Get-ChildItem Cert:\CurrentUser\My |
Select-Object Subject, NotAfter, HasPrivateKey, Thumbprint |
Sort-Object NotAfter
Колонка HasPrivateKey сразу отвечает на вопрос, можно ли этим сертификатом подписывать. Thumbprint — отпечаток, по нему удобно сверять сертификат с тем, что выбран в 1С.
Проверка сертификата внутри 1С и через журнал регистрации
В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) сертификаты, которыми пользуется программа, хранятся в отдельном справочнике. Путь к нему одинаковый:
Администрирование → Общие настройки → раздел «Электронная подпись и шифрование» → ссылка Настройки электронной подписи и шифрования → вкладка Сертификаты.
На вкладке видны все добавленные сертификаты. Откройте нужный и выполните проверку — программа последовательно проверит наличие закрытого ключа, подписание, проверку подписи, шифрование и расшифровку. Каждый пункт помечается отдельно, поэтому сразу понятно, на каком этапе сбой.
На соседней вкладке Программы указан криптопровайдер. Если там нет установленной программы или выбран не тот тип, 1С не увидит сертификат, даже когда Windows его видит.
Что искать в журнале регистрации
Журнал помогает, когда подпись «иногда не проходит» или ошибка видна не у всех. Откройте Администрирование → Обслуживание → Журнал регистрации.
- Нажмите «Установить отбор».
- В поле «События» откройте список и найдите события, в названии которых есть «Электронная подпись».
- Ограничьте период днём, когда случилась ошибка, и при необходимости пользователем.
- Откройте запись двойным щелчком: в комментарии обычно есть текст ошибки криптопровайдера и сведения о сертификате.
Платформенные ошибки входа без лицензии тоже видны в журнале по событиям сеанса, но причину по ним понять сложнее. Для лицензий надёжнее ring и rac.
Сертификаты в веб-клиенте и браузере
В веб-клиенте 1С не обращается к криптопровайдеру напрямую. Для работы с подписью нужны три вещи на компьютере пользователя:
- 🧩 расширение браузера для работы с 1С:Предприятием и сопутствующее приложение — их браузер предлагает установить при первом обращении к функциям, где нужна работа с файлами или криптографией;
- 🔐 плагин криптопровайдера для браузера (для КриптоПро — КриптоПро ЭЦП Browser plug-in);
- 📜 сам сертификат в хранилище текущего пользователя Windows.
Как проверить по шагам:
- Откройте список расширений браузера и убедитесь, что расширение 1С и плагин криптопровайдера включены.
- Проверьте, что плагин видит сертификаты: у КриптоПро для этого есть страница проверки плагина на сайте разработчика. Если сертификат там не отображается, 1С его тоже не увидит.
- В самой 1С откройте сертификат в настройках ЭП и запустите проверку, выбрав выполнение на компьютере.
Если в тонком клиенте всё работает, а в браузере нет — проблема почти всегда в расширениях и плагине, а не в сертификате. Сам сертификат в этом случае переустанавливать не нужно.
Отдельный случай — сертификат TLS для публикации базы по HTTPS. Его ищут не в 1С, а в настройках веб-сервера: в IIS — в разделе привязок сайта, в Apache — в директивах SSLCertificateFile конфигурационного файла.
Поиск файлов сертификатов на диске
Иногда сертификат передали файлом и забыли, куда сохранили. Типичные расширения:
| Расширение | Что внутри |
|---|---|
.cer, .crt | Открытый сертификат |
.p7b | Цепочка сертификатов (часто корневой и промежуточный УЦ) |
.pfx, .p12 | Сертификат вместе с закрытым ключом, защищён паролем |
.lic | Программная лицензия 1С, не сертификат ЭП |
Поиск из командной строки по всему диску:
dir C:\*.cer C:\*.crt C:\*.p7b C:\*.pfx /s /b 2>nul
То же в PowerShell, с датой изменения — помогает найти свежий файл:
Get-ChildItem C:\ -Recurse -Include *.cer,*.crt,*.p7b,*.pfx -ErrorAction SilentlyContinue |
Select-Object FullName, LastWriteTime | Sort-Object LastWriteTime -Descending
Ключевые контейнеры КриптоПро на диске выглядят как папка с файлами .key (например, header.key, primary.key, masks.key). Их чаще всего находят на флешке или в профиле пользователя. Контейнер, сохранённый в реестр, файлов не имеет — его видно только через «Обзор» в КриптоПро.
Файл .pfx с ключом — по сути, сама подпись владельца. Не пересылайте его по почте и не оставляйте в общих папках. Найденные лишние копии удаляйте только после того, как убедились, что рабочий экземпляр установлен и проверен.
Программный перебор сертификатов через конфигурацию
Когда сертификатов много или нужно проверить их сроки на десятке рабочих мест, удобнее обработка. Платформа даёт объект МенеджерКриптографии, через который можно получить хранилище и перебрать сертификаты.
Пример для внешней обработки, выполняется на клиенте:
&НаКлиенте
Процедура ПоказатьСертификаты(Команда)
// Имя и тип криптопровайдера должны совпадать с установленным на компьютере
Менеджер = Новый МенеджерКриптографии(
"Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", "", 80);
Хранилище = Менеджер.ПолучитьХранилищеСертификатов(
ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
Для Каждого Сертификат Из Хранилище.ПолучитьВсе() Цикл
Сообщить(СтрШаблон("%1 | действителен до %2",
Сертификат.Субъект.CN,
Формат(Сертификат.ДатаОкончания, "ДФ=dd.MM.yyyy")));
КонецЦикла;
КонецПроцедуры
Что важно в этом коде:
- 🔧 имя и тип провайдера должны точно совпадать с тем, что указано на вкладке «Программы» в настройках ЭП;
- 📅
ДатаОкончанияудобно сравнить с текущей датой и выводить только сертификаты, которые истекают в ближайший месяц; - 🛡️ в типовых конфигурациях на базе БСП лучше пользоваться готовыми процедурами подсистемы электронной подписи, а не писать свои: они уже учитывают разные провайдеры и места выполнения.
Синхронные вызовы в примере работают, только если в свойствах конфигурации разрешено использование синхронных вызовов. В веб-клиенте нужны асинхронные варианты методов — для такой задачи проще запустить обработку в тонком клиенте.
Частые вопросы
Можно ли перенести программную лицензию 1С на другой компьютер, просто скопировав файл?
ring license validate покажет несоответствие. Нужна повторная активация пин-кодом.Почему сертификат подписи пропал после смены пароля или профиля Windows?
Нужно ли устанавливать корневые сертификаты удостоверяющего центра?
Где хранится сертификат для подписи на сервере 1С?
certlm.msc.