Администрирование · 13 мин
Как установить ЭЦП на сервер 1С
Как установить ЭЦП на сервер 1С: установка криптопровайдера и сертификата, настройка прав, подписание на стороне сервера, проверка и типичные ошибки.
Установка электронной подписи на сервер 1С требуется, когда подписание документов, отправка отчётности или обмен с контрагентами должны выполняться на стороне сервера, а не на компьютере пользователя. Это типовой сценарий для серверных информационных баз, регламентных заданий по отправке отчётности и интеграций с ЭДО, где сертификат должен быть доступен службе агента сервера 1С.
Главное отличие от установки ЭЦП на рабочую станцию — сертификат и закрытый ключ должны быть доступны той учётной записи, под которой работает агент сервера 1С, а не конкретному пользователю. Из-за этого большинство проблем при серверной установке связано не с самим криптопровайдером, а с хранилищем сертификатов и правами доступа к ключевому контейнеру.
Перед началом работ убедитесь, что у вас есть административный доступ к серверу, дистрибутив криптопровайдера с действующей лицензией и сам носитель с ключом (токен, флешка или выгруженный контейнер). Далее разберём весь процесс по шагам.
Подготовка: что нужно проверить до установки
Сначала определите, какой криптопровайдер требуется. Если ключ выдан удостоверяющим центром под КриптоПро CSP — ставьте КриптоПро, если под ViPNet — ставьте ViPNet CSP. Одновременная установка обоих криптопровайдеров на один сервер нежелательна: они конфликтуют на уровне системных библиотек, и подписание может перестать работать.
Проверьте разрядность и версию операционной системы сервера и скачайте соответствующий дистрибутив криптопровайдера с официального сайта разработчика. Убедитесь, что лицензия криптопровайдера допускает использование на сервере — для серверных установок обычно требуется серверная лицензия, а клиентская может юридически и технически не подходить.
Уточните, под какой учётной записью запущена служба «Агент сервера 1С:Предприятия». Откройте services.msc, найдите службу и посмотрите вкладку «Вход в систему». По умолчанию это может быть системная учётная запись или выделенная, например USR1CV8. Именно этой записи потребуется доступ к закрытому ключу.
Установка криптопровайдера на сервер
Запустите установщик криптопровайдера от имени администратора и следуйте мастеру установки. Для КриптоПро CSP после установки введите серийный номер лицензии: это делается в панели управления криптопровайдера на вкладке «Общие» — «Ввод лицензии». Без активированной лицензии подписание работать не будет или будет работать только в демо-режиме.
Если ключ находится на токене (Рутокен, eToken, JaCarta), установите драйверы носителя до подключения устройства. Для Рутокена это «Панель управления Рутокен», для JaCarta — «Единый клиент JaCarta». После установки драйверов подключите токен и убедитесь, что он определяется системой.
На сервере, куда токен физически подключить нельзя (виртуальная машина, удалённая площадка), используйте либо программно-аппаратные решения для проброса USB по сети, либо скопируйте ключевой контейнер в реестр или на локальный диск сервера — если это допускает политика безопасности вашей организации и условия выдачи ключа. Неквалифицированные ключи обычно копируются свободно, а вот выгрузка квалифицированного ключа может быть запрещена настройками носителя.
Установка сертификата и закрытого ключа
Откройте панель криптопровайдера и установите сертификат с привязкой к контейнеру закрытого ключа. В КриптоПро CSP это делается на вкладке «Сервис» — «Установить личный сертификат»: мастер попросит указать файл сертификата и выбрать контейнер закрытого ключа на носителе. После установки сертификат появится в хранилище «Личные».
Критичный момент для сервера: сертификат нужно установить в хранилище локального компьютера, а не только текущего пользователя. Откройте консоль mmc, добавьте оснастку «Сертификаты», при добавлении выберите «учётной записи компьютера» и затем «локального компьютера». Скопируйте сертификат в раздел «Личные» этого хранилища с привязкой к закрытому ключу.
Корневой сертификат удостоверяющего центра установите в хранилище «Доверенные корневые центры сертификации» локального компьютера, а промежуточные — в «Промежуточные центры сертификации». Без полной цепочки сертификат будет считаться недействительным, и 1С при проверке выдаст ошибку доверия.
- 1Установите криптопровайдер и активируйте лицензию
- 2Подключите носитель с ключом или скопируйте контейнер на сервер
- 3Через панель криптопровайдера установите личный сертификат с привязкой к контейнеру
- 4Поместите сертификат в хранилище «Личные» локального компьютера через mmc
- 5Установите корневой и промежуточный сертификаты УЦ в соответствующие хранилища компьютера
- 6Выдайте учётной записи агента сервера 1С права на закрытый ключ
- 7Перезапустите службу агента сервера 1С
Настройка прав доступа к закрытому ключу
Это шаг, на котором чаще всего возникают ошибки. Учётная запись службы агента сервера 1С должна иметь разрешение на чтение закрытого ключа. В КриптоПро CSP права назначаются через вкладку «Сервис» — кнопка, отвечающая за управление правами доступа к контейнерам (в актуальных версиях — «Управление доступом к закрытым ключам»), либо через утилиту командной строки csptest.
Если контейнер хранится в реестре, права настраиваются на ветку реестра с ключами: учётной записи службы нужно дать разрешение на чтение соответствующего раздела. Если контейнер на токене — доступ к носителю обычно есть у всех локальных служб, но потребуется ввод PIN-кода, что для серверного сценария является отдельной проблемой.
Для автоматической работы без ввода PIN-кода в КриптоПро CSP можно сохранить пароль контейнера в системе: при установке сертификата или через настройки контейнера включите запоминание пароля. Учитывайте, что это снижает защищённость ключа, поэтому решение должно приниматься осознанно и согласовываться с требованиями безопасности.
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С: ошибки криптографии фиксируются там с текстом от криптопровайдера. Типичные сообщения — «Не найден закрытый ключ», «Отказано в доступе», «Сертификат не имеет связи с закрытым ключом». Каждое из них указывает на конкретный этап, где нарушена цепочка.
Дополнительно проверьте сертификат средствами криптопровайдера: в КриптоПро CSP на вкладке «Сервис» есть функция «Протестировать», которая проверяет контейнер и связку сертификата с ключом. Тест должен завершиться без ошибок.
Как проверить результат
Сертификат выбирается, отображаются срок действия и владелец
Сертификат не виден или помечен как недействительный
Тест завершён, закрытый ключ найден
Ошибка «контейнер не найден» или «нет доступа»
Подпись создана, статус «Подписан»
Ошибка криптографии в журнале регистрации
Сертификат в «Личные» локального компьютера
Сертификат только в профиле администратора
Типичные ошибки и способы их устранения
Самая частая ошибка — «Не найден закрытый ключ» при попытке подписания из регламентного задания. Причина почти всегда в том, что сертификат установлен в профиль пользователя-администратора, а служба сервера 1С работает под другой учётной записью. Решение — перенести сертификат в хранилище компьютера и выдать права на контейнер.
Вторая распространённая ситуация — запрос PIN-кода токена при каждом подписании. На сервере без интерактивного сеанса ввести PIN некому, и задание зависает или падает. Решение — запомнить пароль контейнера в настройках криптопровайдера либо использовать ключевой носитель с возможностью хранения PIN.
Третья группа ошибок — недействительная цепочка сертификации: 1С сообщает, что сертификат не доверен. Проверьте наличие корневого сертификата УЦ в соответствующем хранилище компьютера и срок действия всех звеньев цепочки. Также убедитесь, что на сервере корректно установлены дата и время — при расхождении сертификат может считаться недействительным.
Перед настройкой на боевом сервере имеет смысл отработать всю цепочку на тестовой копии: установить криптопровайдер, сертификат и права, выполнить тестовое подписание. Так вы проверите права доступа и цепочку доверия, не рискуя остановить отправку отчётности в боевой базе.
Если подписание так и не заработало после всех проверок, последовательно сузьте область поиска: проверьте контейнер утилитой криптопровайдера, затем видимость сертификата в хранилище компьютера, затем права службы, затем настройки в 1С. Такой пошаговый подход быстрее, чем переустановка всего подряд.
Что важно запомнить
Установка ЭЦП на сервер 1С сводится к четырём обязательным условиям: лицензированный криптопровайдер на сервере, сертификат в хранилище локального компьютера, доступ учётной записи агента сервера 1С к закрытому ключу и корректная цепочка доверия. Проверяйте результат тестовым подписанием и журналом регистрации.
Частые вопросы
Можно ли использовать один и тот же ключ ЭЦП на сервере и на рабочем месте?
Да, если носитель позволяет скопировать контейнер и это не запрещено условиями выдачи ключа. Копию контейнера размещают на сервере, оригинал остаётся у пользователя. Учитывайте, что каждая копия закрытого ключа увеличивает риск компрометации, поэтому копии должны храниться только в контролируемых местах.
Почему 1С видит сертификат в тонком клиенте, но не подписывает в регламентном задании?
Потому что в клиентском сеансе используется сертификат с рабочей станции пользователя, а регламентное задание выполняется на сервере под учётной записью службы. Сертификат нужно установить на сервер в хранилище компьютера и дать службе доступ к закрытому ключу.
Нужна ли отдельная лицензия КриптоПро для сервера 1С?
Да, для установки криптопровайдера на серверную операционную систему требуется серверная лицензия. Клиентская лицензия предназначена для рабочих станций и формально не покрывает серверный сценарий использования.
Что делать, если токен с ключом нельзя подключить к виртуальному серверу?
Возможные варианты: скопировать контейнер в реестр сервера (если ключ извлекаемый), использовать устройства проброса USB по сети, выделить физический сервер для подписания или перейти на облачную электронную подпись, где ключ хранится у оператора и подписание выполняется через API.
Как понять, что проблема именно в правах, а не в самом сертификате?
Запустите тест контейнера в КриптоПро CSP от имени учётной записи службы сервера 1С. Если под администратором тест проходит, а под учётной записью службы — нет, причина в правах доступа к контейнеру. Если тест не проходит ни под кем — проверяйте сам контейнер, носитель и цепочку сертификации.
Можно ли обойтись без установки ЭЦП на сервер, если отчётность отправляется автоматически?
Можно, если переложить отправку на клиентское рабочее место: настроить выполнение обмена в сеансе пользователя, у которого установлен сертификат. Однако это привязывает автоматику к конкретному включённому компьютеру, поэтому для стабильной работы серверная установка предпочтительнее.