Где хранятся сертификаты в 1С:Предприятии и как их проверить

· 9 мин

Содержание

Под словом «сертификат» в 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С состоит из двух частей: открытого сертификата и закрытого ключа в контейнере. Сертификат без ключа позволяет проверять чужую подпись, но подписывать им нельзя.

Оснастка сертификатов

  1. Нажмите Win + R, введите certmgr.msc и нажмите Enter. Откроются сертификаты текущего пользователя.
  2. Перейдите в Личное → Сертификаты.
  3. Найдите сертификат по владельцу (поле «Кому выдан») и сроку действия.
  4. Откройте его двойным щелчком. На вкладке «Общие» внизу должна быть строка о наличии закрытого ключа, соответствующего сертификату.

Сертификаты, установленные для всего компьютера, смотрят в certlm.msc — это хранилище локального компьютера. Оно нужно, например, когда подпись выполняется на сервере 1С от имени служебной учётной записи.

Через КриптоПро CSP

Если подпись по ГОСТ, удобнее проверять через КриптоПро:

  1. Откройте «КриптоПро CSP» из меню «Пуск».
  2. Вкладка Сервис → Просмотреть сертификаты в контейнере….
  3. Нажмите «Обзор» и выберите контейнер: на токене, в реестре или на диске.
  4. Программа покажет сертификат из контейнера. Если его нет в «Личном», на этой же вкладке есть команда установки личного сертификата.

Через 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 его видит.

Что искать в журнале регистрации

Журнал помогает, когда подпись «иногда не проходит» или ошибка видна не у всех. Откройте Администрирование → Обслуживание → Журнал регистрации.

  1. Нажмите «Установить отбор».
  2. В поле «События» откройте список и найдите события, в названии которых есть «Электронная подпись».
  3. Ограничьте период днём, когда случилась ошибка, и при необходимости пользователем.
  4. Откройте запись двойным щелчком: в комментарии обычно есть текст ошибки криптопровайдера и сведения о сертификате.

Платформенные ошибки входа без лицензии тоже видны в журнале по событиям сеанса, но причину по ним понять сложнее. Для лицензий надёжнее ring и rac.

Диагностика: выберите симптом

Сертификаты в веб-клиенте и браузере

В веб-клиенте 1С не обращается к криптопровайдеру напрямую. Для работы с подписью нужны три вещи на компьютере пользователя:

  • 🧩 расширение браузера для работы с 1С:Предприятием и сопутствующее приложение — их браузер предлагает установить при первом обращении к функциям, где нужна работа с файлами или криптографией;
  • 🔐 плагин криптопровайдера для браузера (для КриптоПро — КриптоПро ЭЦП Browser plug-in);
  • 📜 сам сертификат в хранилище текущего пользователя Windows.

Как проверить по шагам:

  1. Откройте список расширений браузера и убедитесь, что расширение 1С и плагин криптопровайдера включены.
  2. Проверьте, что плагин видит сертификаты: у КриптоПро для этого есть страница проверки плагина на сайте разработчика. Если сертификат там не отображается, 1С его тоже не увидит.
  3. В самой 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С
Выполнено: 0 / 6

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

Можно ли перенести программную лицензию 1С на другой компьютер, просто скопировав файл?
Нет. Лицензия привязана к параметрам компьютера, на новом месте ring license validate покажет несоответствие. Нужна повторная активация пин-кодом.
Почему сертификат подписи пропал после смены пароля или профиля Windows?
Личные сертификаты хранятся в профиле пользователя. При создании нового профиля их надо установить заново из контейнера.
Нужно ли устанавливать корневые сертификаты удостоверяющего центра?
Да, если при проверке 1С сообщает, что не удалось построить цепочку. Корневой и промежуточные сертификаты ставят в хранилище доверенных корневых и промежуточных центров.
Где хранится сертификат для подписи на сервере 1С?
В хранилище той учётной записи, под которой работает служба сервера 1С, либо в хранилище компьютера. Проверяют его на сервере через certlm.msc.
Видно ли в 1С, кто и когда подписал документ?
Да. Подписи хранятся вместе с документом: в карточке объекта есть команда для просмотра установленных подписей с датой и владельцем сертификата.