Администрирование · 10 мин
Как установить сертификат ЭЦП на сервер 1С
Пошаговая инструкция по установке сертификата ЭЦП на сервер 1С: Предприятие: хранилища, права доступа, настройка криптопровайдера, проверка подписания и типичные ошибки.
Установка сертификата электронной подписи на сервер 1С требуется, когда подписание документов выполняется не на компьютере пользователя, а на стороне сервера: обмен электронными документами (ЭДО), отправка отчётности в контролирующие органы, автоматическое подписание по расписанию. В этом случае сертификат и закрытый ключ должны быть доступны учётной записи, под которой работает агент сервера 1С:Предприятия.
Главное отличие серверной установки от локальной — выбор хранилища и прав доступа. Если сертификат установить «как обычно» в личное хранилище текущего пользователя Windows, сервер 1С его просто не увидит, потому что агент работает под отдельной учётной записью (по умолчанию — USR1CV8 или системной). Ниже разобраны подготовка, установка, настройка прав и проверка результата.
Что подготовить перед установкой
До начала работ убедитесь, что на сервере установлен криптопровайдер, совместимый с вашим типом подписи — чаще всего это КриптоПро CSP или ViPNet CSP. Сертификат, выпущенный под ГОСТ, без установленного криптопровайдера работать не будет, даже если сам файл сертификата установлен корректно.
Проверьте разрядность и версию криптопровайдера: они должны соответствовать разрядности сервера 1С (как правило, 64-разрядная версия). Также потребуются права локального администратора на сервере и сам контейнер с закрытым ключом — на токене (Рутокен, eToken), флеш-накопителе или в реестре.
Определите, под какой учётной записью работает агент сервера 1С:Предприятия. Это видно в оснастке «Службы» (services.msc) в свойствах службы «Агент сервера 1С:Предприятия» на вкладке «Вход в систему». Именно этой записи позже нужно будет дать доступ к закрытому ключу.
Куда устанавливать: выбор хранилища сертификатов
Windows хранит сертификаты в двух основных областях: «Текущий пользователь» и «Локальный компьютер». Для серверного сценария корректный вариант — хранилище локального компьютера (LocalMachine), папка «Личные» (Personal/My). Тогда сертификат виден всем службам сервера, включая агент 1С, при условии выданных прав на закрытый ключ.
Альтернативный вариант — установка в хранилище конкретной учётной записи агента сервера. Для этого придётся войти на сервер под этой записью (или использовать runas) и установить сертификат в её личное хранилище. Способ рабочий, но менее удобен при обслуживании: перенос и продление сертификата усложняются.
Сравнение вариантов
Рекомендуемый вариант: сертификат доступен службам, удобно управлять правами на закрытый ключ. Требуются права администратора.
Подходит, если политика безопасности запрещает выдавать права широко. Сложнее обслуживать: вход под сервисной учётной записью затруднён.
Подходит только если подписание выполняется на стороне клиента. Для серверного ЭДО и регламентных заданий не работает.
Установка сертификата через оснастку MMC
Стандартный способ установки — консоль управления Microsoft (MMC) с оснасткой «Сертификаты». Порядок действий одинаков для большинства версий Windows Server.
- 1Нажмите Win+R, введите mmc и запустите консоль от имени администратора.
- 2Через меню «Файл → Добавить или удалить оснастку» добавьте оснастку «Сертификаты», в мастере выберите «учётной записи компьютера» и «локальным компьютером».
- 3В дереве консоли раскройте «Сертификаты (локальный компьютер) → Личные → Сертификаты».
- 4Щёлкните правой кнопкой → «Все задачи → Импорт» и укажите файл сертификата (.cer) или контейнер с ключом.
- 5Если ключ на токене — сначала установите сертификат в контейнер через панель криптопровайдера (например, «КриптоПро CSP → Сервис → Установить личный сертификат»), затем при необходимости скопируйте его в хранилище локального компьютера.
- 6Откройте сертификат двойным щелчком и убедитесь, что внизу вкладки «Общие» есть строка «Есть закрытый ключ для этого сертификата».
Если строки про закрытый ключ нет, сертификат установлен без привязки к контейнеру. В этом случае повторите установку через интерфейс криптопровайдера, который умеет находить контейнер на носителе и связывать его с сертификатом.
После установки проверьте цепочку сертификации: на вкладке «Путь сертификации» не должно быть ошибок. При необходимости установите корневой сертификат удостоверяющего центра в хранилище «Доверенные корневые центры сертификации» локального компьютера, а промежуточные — в «Промежуточные центры сертификации».
Выдача прав на закрытый ключ
Даже в хранилище локального компьютера закрытый ключ по умолчанию доступен не всем. Учётной записи агента сервера 1С нужно явно выдать разрешение на чтение ключа.
В оснастке MMC щёлкните по сертификату правой кнопкой, выберите «Все задачи → Управление закрытыми ключами» и добавьте учётную запись агента сервера 1С (например, USR1CV8) с правом «Чтение». Полные права давать не требуется — достаточно чтения.
Если ключ хранится на токене, права на файл ключа не настраиваются — доступ регулируется драйвером токена и PIN-кодом. Учтите: при серверном подписании PIN-код должен быть либо отключён (если это допускает политика безопасности и сам токен), либо сохранён в настройках криптопровайдера, иначе автоматическое подписание регламентными заданиями будет останавливаться на запросе PIN.
Настройка сертификата внутри 1С
После установки сертификата в операционной системе его нужно указать в самой программе. В типовых конфигурациях (например, с подсистемой электронной подписи из БСП) это делается в разделе администрирования: «Настройки электронной подписи и шифрования» или аналогичном.
Добавьте сертификат из списка — программа покажет сертификаты, видимые ей из хранилищ. Если сертификат виден при запуске 1С на сервере под администратором, но не работает в регламентных заданиях, значит, проблема именно в правах учётной записи агента. Проверьте также, что в настройках программы указан правильный криптопровайдер и его тип соответствует сертификату.
Для обмена электронными документами сертификат дополнительно привязывается к учётной записи ЭДО и профилю настроек. Убедитесь, что сертификат действителен по сроку, зарегистрирован у оператора ЭДО (если требуется) и выбран именно в том профиле, через который идёт обмен.
Удобный приём диагностики: запустите толстый клиент 1С на самом сервере под учётной записью агента (через runas) и проверьте, виден ли сертификат в списке. Если под агентом сертификата нет, а под администратором есть — проблема точно в правах на закрытый ключ или в выборе хранилища.
Проверка результата и типичные ошибки
Контрольная проверка — тестовое подписание. В типовых конфигурациях есть команда «Проверить» рядом с сертификатом: программа выполняет пробное подписание и проверку подписи. Успешная проверка означает, что и сертификат, и закрытый ключ, и криптопровайдер работают корректно.
Как проверить результат
На вкладке «Общие» есть надпись «Есть закрытый ключ для этого сертификата»
Надписи нет — сертификат установлен без привязки к контейнеру
На вкладке «Путь сертификации» статус «Сертификат действителен»
Ошибки цепочки — не установлен корневой или промежуточный сертификат УЦ
Проверка проходит без ошибок, в том числе из регламентного задания
«Сертификат не найден» или «Отказано в доступе» — проблема с хранилищем или правами
Сертификат действует, даты в пределах срока
Сертификат просрочен или ещё не начал действовать
Отдельный случай — обновление сертификата. Новый сертификат устанавливается по той же процедуре, после чего его нужно заново выбрать в настройках 1С и в профиле ЭДО. Старый сертификат не удаляйте сразу: он нужен для проверки подписей на ранее подписанных документах.
Что важно запомнить
Сертификат ставится в хранилище «Локальный компьютер → Личные», учётной записи агента сервера 1С выдаётся право чтения закрытого ключа, криптопровайдер и цепочка УЦ устанавливаются заранее. Финальный критерий успеха — успешная проверка подписания из 1С, включая выполнение под учётной записью агента.
Частые вопросы
Можно ли использовать один сертификат и на клиенте, и на сервере?
Да, если закрытый ключ экспортируемый и политика безопасности это допускает. Технически сертификат устанавливается независимо на каждом компьютере. На практике для сервера часто выпускают отдельный сертификат на должностное лицо или используют машиночитаемую доверенность, чтобы разделить зоны ответственности.
Почему 1С пишет «Сертификат не найден», хотя он установлен?
Чаще всего сертификат установлен в хранилище текущего пользователя, а поиск выполняется от имени учётной записи агента сервера. Перенесите сертификат в хранилище локального компьютера и выдайте агенту права на закрытый ключ. Также проверьте, что сертификат не просрочен — просроченные сертификаты программа может скрывать из списка.
Нужен ли на сервере токен с ключом постоянно?
Если контейнер ключа находится на токене — да, токен должен быть физически подключён к серверу в момент подписания. Это неудобно для виртуальных серверов, поэтому для серверных сценариев часто используют ключи в реестре/файловой системе (если позволяет политика безопасности) или сетевые решения для проброса USB-устройств.
Как проверить, под какой учётной записью работает агент сервера 1С?
Откройте «Службы» (services.msc), найдите службу «Агент сервера 1С:Предприятия», откройте её свойства и посмотрите вкладку «Вход в систему». Там указана учётная запись — именно ей выдаются права на закрытый ключ сертификата.
Что делать, если подписание работает вручную, но не работает в регламентном задании?
Это почти всегда вопрос прав или PIN-кода. Ручное подписание выполняется под вашей учётной записью, регламентное — под учётной записью агента. Проверьте права на закрытый ключ для записи агента и убедитесь, что PIN-код токена либо сохранён в криптопровайдере, либо не требуется.
Нужно ли перезапускать сервер 1С после установки сертификата?
Обычно нет — хранилища сертификатов читаются в момент обращения. Но если права на закрытый ключ выдавались для службы, а ошибка сохраняется, перезапуск службы агента сервера 1С помогает исключить кэшированные результаты обращений к криптопровайдеру.