К статье
Практический материал

Администрирование · 13 мин

Как установить ЭЦП на сервер 1С

Как установить ЭЦП на сервер 1С: установка криптопровайдера и сертификата, настройка прав, подписание на стороне сервера, проверка и типичные ошибки.

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

Главное отличие от установки ЭЦП на рабочую станцию — сертификат и закрытый ключ должны быть доступны той учётной записи, под которой работает агент сервера 1С, а не конкретному пользователю. Из-за этого большинство проблем при серверной установке связано не с самим криптопровайдером, а с хранилищем сертификатов и правами доступа к ключевому контейнеру.

Перед началом работ убедитесь, что у вас есть административный доступ к серверу, дистрибутив криптопровайдера с действующей лицензией и сам носитель с ключом (токен, флешка или выгруженный контейнер). Далее разберём весь процесс по шагам.

Подготовка: что нужно проверить до установки

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

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

Уточните, под какой учётной записью запущена служба «Агент сервера 1С:Предприятия». Откройте services.msc, найдите службу и посмотрите вкладку «Вход в систему». По умолчанию это может быть системная учётная запись или выделенная, например USR1CV8. Именно этой записи потребуется доступ к закрытому ключу.

Установка криптопровайдера на сервер

Запустите установщик криптопровайдера от имени администратора и следуйте мастеру установки. Для КриптоПро CSP после установки введите серийный номер лицензии: это делается в панели управления криптопровайдера на вкладке «Общие» — «Ввод лицензии». Без активированной лицензии подписание работать не будет или будет работать только в демо-режиме.

Если ключ находится на токене (Рутокен, eToken, JaCarta), установите драйверы носителя до подключения устройства. Для Рутокена это «Панель управления Рутокен», для JaCarta — «Единый клиент JaCarta». После установки драйверов подключите токен и убедитесь, что он определяется системой.

На сервере, куда токен физически подключить нельзя (виртуальная машина, удалённая площадка), используйте либо программно-аппаратные решения для проброса USB по сети, либо скопируйте ключевой контейнер в реестр или на локальный диск сервера — если это допускает политика безопасности вашей организации и условия выдачи ключа. Неквалифицированные ключи обычно копируются свободно, а вот выгрузка квалифицированного ключа может быть запрещена настройками носителя.

Установка сертификата и закрытого ключа

Откройте панель криптопровайдера и установите сертификат с привязкой к контейнеру закрытого ключа. В КриптоПро CSP это делается на вкладке «Сервис» — «Установить личный сертификат»: мастер попросит указать файл сертификата и выбрать контейнер закрытого ключа на носителе. После установки сертификат появится в хранилище «Личные».

Критичный момент для сервера: сертификат нужно установить в хранилище локального компьютера, а не только текущего пользователя. Откройте консоль mmc, добавьте оснастку «Сертификаты», при добавлении выберите «учётной записи компьютера» и затем «локального компьютера». Скопируйте сертификат в раздел «Личные» этого хранилища с привязкой к закрытому ключу.

Корневой сертификат удостоверяющего центра установите в хранилище «Доверенные корневые центры сертификации» локального компьютера, а промежуточные — в «Промежуточные центры сертификации». Без полной цепочки сертификат будет считаться недействительным, и 1С при проверке выдаст ошибку доверия.

Порядок установки сертификата на сервер
  1. 1
    Установите криптопровайдер и активируйте лицензию
  2. 2
    Подключите носитель с ключом или скопируйте контейнер на сервер
  3. 3
    Через панель криптопровайдера установите личный сертификат с привязкой к контейнеру
  4. 4
    Поместите сертификат в хранилище «Личные» локального компьютера через mmc
  5. 5
    Установите корневой и промежуточный сертификаты УЦ в соответствующие хранилища компьютера
  6. 6
    Выдайте учётной записи агента сервера 1С права на закрытый ключ
  7. 7
    Перезапустите службу агента сервера 1С

Настройка прав доступа к закрытому ключу

Это шаг, на котором чаще всего возникают ошибки. Учётная запись службы агента сервера 1С должна иметь разрешение на чтение закрытого ключа. В КриптоПро CSP права назначаются через вкладку «Сервис» — кнопка, отвечающая за управление правами доступа к контейнерам (в актуальных версиях — «Управление доступом к закрытым ключам»), либо через утилиту командной строки csptest.

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

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

bash
csptest -keyset -enum_cont -verifycontext -fqcn

Эта команда выводит список контейнеров ключей, видимых в системном контексте. Запустите её из каталога КриптоПро CSP от имени учётной записи службы (через psexec -s или runas), чтобы проверить, видит ли служба нужный контейнер.

Настройка подписания в 1С

В типовых конфигурациях (1С:Бухгалтерия, 1С:Документооборот, 1С:Отчётность и др.) перейдите в раздел настройки электронной подписи: обычно это «Администрирование» — «Обмен электронными документами» — «Электронные подписи». Добавьте сертификат: программа предложит выбрать его из списка доступных или указать вручную, задав криптопровайдера, алгоритмы подписи и хеширования.

Если сертификат не отображается в списке, укажите параметры вручную: выберите программу защиты информации (например, Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider), алгоритм подписи ГОСТ Р 34.10-2012 и алгоритм хеширования ГОСТ Р 34.11-2012. Точные значения зависят от типа вашего ключа — они указаны в документах удостоверяющего центра.

В настройках обмена с контролирующими органами (1С-Отчётность) укажите сертификат в параметрах подключения и выполните автоматическую проверку настроек. Для ЭДО проверьте профиль настроек: там должен быть выбран сертификат, доступный на сервере, если подписание выполняется регламентным заданием.

Маршрут решения

Где выполнять подписание

Подписывают пользователи вручную из клиентских сеансовДостаточно установить ЭЦП на рабочие места пользователей, серверная установка не обязательна
Отчётность и ЭДО отправляются регламентными заданиями без участия пользователяУстанавливайте сертификат на сервер с доступом для учётной записи агента сервера 1С
Используется файловая база без сервера 1СЭЦП ставится на компьютер, где работает пользователь или запускается фоновое задание
Ключ неизвлекаемый на токене, а сервер виртуальныйРассмотрите облачную подпись или выделенный физический сервер с USB-портом

Проверка работоспособности

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

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

Дополнительно проверьте сертификат средствами криптопровайдера: в КриптоПро CSP на вкладке «Сервис» есть функция «Протестировать», которая проверяет контейнер и связку сертификата с ключом. Тест должен завершиться без ошибок.

Контрольные точки

Как проверить результат

Сертификат в списке 1С
Норма

Сертификат выбирается, отображаются срок действия и владелец

Тревожный признак

Сертификат не виден или помечен как недействительный

Тест контейнера в КриптоПро CSP
Норма

Тест завершён, закрытый ключ найден

Тревожный признак

Ошибка «контейнер не найден» или «нет доступа»

Подписание документа
Норма

Подпись создана, статус «Подписан»

Тревожный признак

Ошибка криптографии в журнале регистрации

Хранилище сертификата
Норма

Сертификат в «Личные» локального компьютера

Тревожный признак

Сертификат только в профиле администратора

Типичные ошибки и способы их устранения

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

Вторая распространённая ситуация — запрос PIN-кода токена при каждом подписании. На сервере без интерактивного сеанса ввести PIN некому, и задание зависает или падает. Решение — запомнить пароль контейнера в настройках криптопровайдера либо использовать ключевой носитель с возможностью хранения PIN.

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

Типичные ошибки
01
Установка сертификата только в профиль администратора — служба сервера 1С его не видит, регламентные задания падают
02
Отсутствие прав на контейнер закрытого ключа у учётной записи службы — ошибка «отказано в доступе» при подписании
03
Установка двух криптопровайдеров на один сервер — конфликт библиотек и непредсказуемые сбои подписания
04
Неустановленный корневой сертификат УЦ — цепочка доверия не строится, 1С считает сертификат недействительным
05
Использование клиентской лицензии криптопровайдера на сервере — лицензионные нарушения и ограничения работы
Перед настройкой на боевом сервере имеет смысл отработать всю цепочку на тестовой копии: установить криптопровайдер, сертификат и права, выполнить тестовое подписание. Так вы проверите права доступа и цепочку доверия, не рискуя остановить отправку отчётности в боевой базе.
ПЗ
Практическое замечание

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

Итог

Что важно запомнить

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

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

Можно ли использовать один и тот же ключ ЭЦП на сервере и на рабочем месте?

Да, если носитель позволяет скопировать контейнер и это не запрещено условиями выдачи ключа. Копию контейнера размещают на сервере, оригинал остаётся у пользователя. Учитывайте, что каждая копия закрытого ключа увеличивает риск компрометации, поэтому копии должны храниться только в контролируемых местах.

Почему 1С видит сертификат в тонком клиенте, но не подписывает в регламентном задании?

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

Нужна ли отдельная лицензия КриптоПро для сервера 1С?

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

Что делать, если токен с ключом нельзя подключить к виртуальному серверу?

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

Как понять, что проблема именно в правах, а не в самом сертификате?

Запустите тест контейнера в КриптоПро CSP от имени учётной записи службы сервера 1С. Если под администратором тест проходит, а под учётной записью службы — нет, причина в правах доступа к контейнеру. Если тест не проходит ни под кем — проверяйте сам контейнер, носитель и цепочку сертификации.

Можно ли обойтись без установки ЭЦП на сервер, если отчётность отправляется автоматически?

Можно, если переложить отправку на клиентское рабочее место: настроить выполнение обмена в сеансе пользователя, у которого установлен сертификат. Однако это привязывает автоматику к конкретному включённому компьютеру, поэтому для стабильной работы серверная установка предпочтительнее.