Выгрузка сертификата электронной подписи из 1С, Windows и КриптоПро
Содержание
Вытащить сертификат из 1С проще всего из его карточки: Администрирование → Общие настройки → Электронная подпись и шифрование → Настройки электронной подписи и шифрования, вкладка «Сертификаты», открыть нужный и сохранить в файл .cer. Это пошаговая операция на пару минут, права администратора в базе для неё обычно не нужны.
Частое заблуждение — что вместе с сертификатом из 1С можно извлечь и саму подпись, чтобы перенести её на другой компьютер. Нельзя: база хранит только открытую часть. Закрытый ключ лежит в контейнере КриптоПро, на токене или в реестре Windows, и переносить нужно именно его. Ниже — рабочие способы для каждой из этих частей.
Что хранит 1С и где лежит остальное
Подпись физически состоит из двух частей. Путаница между ними — главная причина неудачных попыток «достать ЭЦП из базы».
| Что | Где хранится | Можно ли извлечь | Для чего нужно |
|---|---|---|---|
Сертификат (открытый ключ) .cer | В базе 1С, в хранилище Windows, внутри контейнера | Да, всегда | Проверка подписи, шифрование для владельца, настройка обмена |
| Закрытый ключ | Контейнер КриптоПро: токен, флешка, реестр | Только если ключ помечен экспортируемым | Подписание документов |
Сертификат + ключ .pfx | Не хранится, создаётся при экспорте | Только при экспортируемом ключе | Перенос подписи на другой ПК |
Подписанный файл .p7s, .sig | Во вложениях документов 1С | Да | Из него можно достать сертификат подписанта |
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) сертификаты лежат в справочнике «Сертификаты ключей электронной подписи и шифрования». В карточке хранятся данные сертификата, кому и кем он выдан, срок действия и отпечаток. Ключа там нет даже в зашифрованном виде.
Если подпись облачная (ключ хранится у провайдера сервиса, а не у вас), вытащить из 1С и с компьютера можно только сертификат. Ключ остаётся в сервисе.
Как выгрузить сертификат из самой 1С
Один сертификат из карточки
- Откройте
Администрирование → Общие настройки. - Разверните группу «Электронная подпись и шифрование» и перейдите по ссылке «Настройки электронной подписи и шифрования».
- На вкладке «Сертификаты» найдите нужный. Ориентируйтесь на колонки «Кому выдан» и «Действителен до»: у одного человека часто бывает несколько сертификатов разных лет.
- Откройте карточку двойным щелчком.
- Выберите команду сохранения сертификата в файл. Если на командной панели её нет, она в меню «Ещё».
- Укажите папку и имя, например
Иванов_2026.cer.
Получится файл в двоичном формате DER. Windows открывает его двойным щелчком и показывает поля сертификата: владельца, издателя, срок, отпечаток.
Все сертификаты разом обработкой
Если сертификатов десятки или их нужно выгрузить из чужой базы для аудита, удобнее внешняя обработка. Через конфигуратор сертификат «экспортировать» нельзя: такой команды там нет. Конфигуратор нужен, чтобы создать обработку
(Файл → Новый → Внешняя обработка) и посмотреть имена реквизитов справочника.
Код серверной процедуры:
&НаСервереБезКонтекста
Процедура ВыгрузитьСертификатыНаСервере(Каталог)
Выборка = Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.Выбрать();
Пока Выборка.Следующий() Цикл
Данные = Выборка.ДанныеСертификата.Получить();
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
Продолжить;
КонецЕсли;
ИмяФайла = Каталог + "\" + Выборка.Отпечаток + ".cer";
Данные.Записать(ИмяФайла);
КонецЦикла;
КонецПроцедуры
Вызов с клиента: ВыгрузитьСертификатыНаСервере("C:\certs"). Папку создайте заранее.
Код выполняется на сервере. В клиент-серверной базе файлы окажутся в папке на компьютере сервера 1С, а не у вас. Каталог должен существовать там, а у учётной записи, от имени которой запущена служба сервера, должны быть права на запись.
Имя по отпечатку удобно: оно уникально, а и 1С, и Windows ищут сертификат именно по нему. Если нужен человекочитаемый список, допишите вывод Выборка.Наименование и отпечатка в табличный документ.
Перед запуском сверьте имена реквизитов в дереве конфигурации: в старых редакциях БСП справочник и его поля могли называться иначе.
Файловая база не открывается и вложения с подписью
Файл 1Cv8.1CD — не архив и не папка: в нём нельзя найти сертификат поиском или открыть его архиватором. Править этот файл сторонними программами опасно, проще поднять копию.
Порядок, если база не запускается у пользователя:
- Скопируйте каталог базы целиком в отдельную папку.
- Добавьте копию в список баз и откройте её. Если мешает пароль пользователя, сбросьте его в копии через конфигуратор (
Администрирование → Пользователи) — для этого нужен пароль администратора базы. - Выгрузите сертификаты способами из раздела выше.
- Удалите копию: в ней персональные данные и вся бухгалтерия.
Второй источник сертификата — сами подписанные файлы. Если документ подписан в 1С, у него есть подпись .p7s или .sig, а внутри неё — сертификат подписанта. Сохраните документ вместе с подписью из списка электронных подписей объекта и достаньте сертификат утилитой (команды — в разделе про OpenSSL). Это выручает, когда контрагент прислал подписанный документ, а сам сертификат вы у него не запрашивали.
Экспорт сертификата из хранилища Windows
Если подписью уже пользовались на этом компьютере, её сертификат почти наверняка установлен в личное хранилище.
- Нажмите
Win+R, введитеcertmgr.msc. - Откройте
Личное → Сертификаты. - Правой кнопкой по нужному сертификату:
Все задачи → Экспорт. - На вопросе про закрытый ключ выберите «Нет, не экспортировать закрытый ключ», если нужен только
.cer. - Формат: «Файлы X.509 (.CER) в кодировке DER» или Base-64. Для 1С и большинства порталов подходят оба.
- Укажите путь и завершите мастер.
Сертификаты удостоверяющих центров лежат рядом, в узлах «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации». Их выгружают так же, когда на другом компьютере не строится цепочка.
Сертификаты, установленные для всех пользователей, ищите в оснастке certlm.msc (хранилище локального компьютера). Для неё нужны права администратора Windows.
Сертификат и ключ из контейнера КриптоПро
Когда сертификата нет ни в 1С, ни в certmgr.msc, он почти всегда есть внутри контейнера.
Достать только сертификат
- Запустите «КриптоПро CSP», вкладка «Сервис».
- «Просмотреть сертификаты в контейнере» → «Обзор», выберите контейнер (токен, флешку или реестр).
- Нажмите «Далее», затем «Свойства».
- В окне сертификата: вкладка «Состав» → «Копировать в файл».
Там же есть кнопка «Установить»: она кладёт сертификат в личное хранилище и связывает его с ключом. После этого 1С видит подпись при добавлении сертификата из установленных на компьютере.
Перенести ключ на другой компьютер
| Способ | Когда подходит | Ограничения |
|---|---|---|
Сервис → Скопировать в КриптоПро | Копия контейнера на флешку или в реестр | Ключ должен быть экспортируемым, нужен PIN |
Экспорт в .pfx из certmgr.msc | Нужен один файл под паролем | Только для экспортируемых ключей; для ГОСТ нужна КриптоПро CSP 5.0 |
| Перенос папки контейнера с флешки | Файловый контейнер вида xxxxxx.000 | Копировать папку целиком, со всеми файлами .key |
| Подключить токен на новом ПК | Неизвлекаемый ключ (КЭП из ФНС и т. п.) | Копию сделать нельзя, только установить сертификат с токена |
Ключи в реестре на 64-битной Windows лежат в ветке:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\<SID пользователя>\Keys
Выгружать эту ветку .reg-файлом и импортировать на другой машине — плохая идея: ключ привязан к пользователю, и без штатного копирования КриптоПро часто его не увидит. Пользуйтесь «Скопировать».
Неизвлекаемый ключ на токене нельзя скопировать ничем. Это защита, а не поломка. Для работы на втором компьютере нужен либо тот же токен, либо второй сертификат.
OpenSSL, certutil и keytool: конвертация и разбор
Утилиты нужны, когда сертификат уже у вас в каком-то виде и его надо привести к формату, который ждёт портал, сервер интеграции или программа.
certutil встроен в Windows, ставить ничего не нужно:
:: список личных сертификатов текущего пользователя
certutil -user -store My
:: сохранить сертификат по серийному номеру или отпечатку в файл
certutil -user -store My <отпечаток> C:\certs\cert.cer
:: посмотреть содержимое файла
certutil -dump C:\certs\cert.cer
:: Base64 -> двоичный DER и обратно
certutil -decode cert_base64.txt cert.cer
certutil -encode cert.cer cert_base64.txt
OpenSSL удобен для конвертации и разбора подписей:
# DER -> PEM (текст с BEGIN CERTIFICATE)
openssl x509 -inform DER -in cert.cer -out cert.pem
# посмотреть владельца и срок действия
openssl x509 -inform DER -in cert.cer -noout -subject -enddate
# достать сертификат подписанта из файла подписи
openssl pkcs7 -inform DER -in document.p7s -print_certs -out signer.pem
Если .sig в текстовом виде (Base64 без заголовков), сначала прогоните его через certutil -decode.
Без ГОСТ-модуля OpenSSL прочитает структуру сертификата, но может не распознать алгоритм ключа. Владелец, издатель и сроки при этом видны.
keytool из состава Java нужен для интеграций на Java: просмотр keytool -printcert -file cert.cer и импорт сертификата в хранилище доверенных. С ГОСТ-ключами стандартная Java без отдельного криптопровайдера не работает
, поэтому keytool применяют в основном для RSA-сертификатов серверов обмена.
Почему не получается извлечь сертификат
Ещё одна ловушка — старый сертификат. В справочнике 1С остаются все сертификаты, включая просроченные. Перед выгрузкой сверьте «Действителен до», иначе на портал или в банк уйдёт файл, который там отклонят.
Как хранить выгруженные сертификаты и ключи
Файл .cer — открытая информация. Его можно отправлять по почте контрагенту, банку, в службу поддержки. Скомпрометировать подпись по нему нельзя.
С ключом всё иначе. Закон об электронной подписи обязывает владельца обеспечивать конфиденциальность ключа, а документ, подписанный его ключом, считается подписанным владельцем.
- 🔒
.pfxставьте на длинный пароль и сообщайте его отдельным каналом, не тем, по которому шёл файл. - 🗂️ Копии контейнеров не держите на общем сетевом диске и в мессенджерах.
- 🧹 После переноса удалите временные копии: на флешке, в «Загрузках», в корзине.
- 🔑 Смените PIN токена со стандартного, если его не меняли после выдачи.
- 📅 Просроченные сертификаты не удаляйте из 1С: они нужны для проверки старых подписанных документов.
При подозрении, что ключ попал в чужие руки, сразу обратитесь в удостоверяющий центр за отзывом сертификата. Пока сертификат не отозван, подписи этим ключом действительны.
Частые вопросы
Можно ли скопировать КЭП руководителя, полученную в ФНС?
Чем .cer отличается от .pfx?
Нужно ли удалять сертификат из 1С после увольнения сотрудника?
Как узнать отпечаток сертификата без 1С?
Подойдёт ли сертификат, выгруженный из 1С, для входа на госпортал?
Источники
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи»