При переходе от файловой базы к клиент-серверной архитектуре (SQL) многие администраторы и специалисты 1С сталкиваются с проблемами настройки обмена с государственными информационными системами, такими как ИС МП (Честный ЗНАК). Ситуация, когда "локально все работает, а на сервере нет подключения", является классической. В этой статье мы подробно разберем технические аспекты настройки криптографии на сервере, вопросы лицензирования и неочевидные настройки, которые могут блокировать работу.
Первый вопрос, который мы должны решить при настройке обмена — где физически будет происходить операция подписания электронных документов. Это определяет, где должна быть установлена программа криптозащиты (КриптоПро CSP) и где должен находиться сертификат электронной подписи.
В экосистеме 1С существуют два основных сценария:
Плюсы: Не требуется дорогая серверная лицензия КриптоПро (достаточно клиентской). Ключ может быть на обычном токене в USB-порту пользователя.
Минусы: Невозможна полная автоматизация. Фоновые и регламентные задания (например, автоматическое получение статусов кодов маркировки по расписанию) выполняются на сервере 1С. Сервер не имеет доступа к USB-портам и реестру клиентского компьютера. Следовательно, регламентные задания работать не будут.
Плюсы: Работают регламентные задания, обмен происходит автоматически без участия пользователя. Это позволяет внедрить автоматическое обновление токенов Честного Знака в 1С, чтобы устранить человеческий фактор и избежать остановок в работе.
Минусы: Требуется установка ПО на сервер и решение вопросов безопасности (хранение закрытых ключей на сервере).
Если мы посмотрим на рекомендации фирмы 1С, то для клиент-серверной архитектуры в форме Настройки электронной подписи и шифрования на закладке Программы рекомендуется установить флажки:
Проверять подписи и сертификаты на сервереПодписывать на сервереЭто необходимо для работы с разных рабочих мест с одним сертификатом, установленным на сервере, и для работы регламентных заданий.
Разберем важный финансовый и технический аспект, который часто вызывает вопросы. Какой КриптоПро нужен для сервера?
Тип требуемой лицензии зависит от операционной системы:
Важное замечание: Если вы используете сертификаты со встроенной лицензией КриптоПро, обязательно проверьте условия их использования. Часто встроенная лицензия не распространяется на серверные операционные системы.
При настройке подписания на сервере мы часто сталкиваемся с тем, что "КриптоПро стоит, сертификат установлен, а 1С его не видит". Разберем причину.
Служба сервера 1С (rphost) обычно запускается от имени специального служебного пользователя, например, usr1cv8. Когда вы заходите на сервер через RDP под своей учетной записью (Administrator) и устанавливаете сертификат, он попадает в личное хранилище пользователя Administrator.
Пользователь usr1cv8 не имеет доступа к личному хранилищу Администратора. Чтобы сервер 1С увидел сертификат, необходимо выполнить одно из действий:
usr1cv8 (или тем, под которым запущена служба) и установить сертификат в его личное хранилище.Вернемся к проблеме, описанной в начале. Ситуация: локально все работает, а из серверной базы подключение не устанавливается. При этом настройки криптографии вроде бы верны. Для детального разбора причин возникших проблем можно использовать поиск по протоколу обмена ИС МП Честный знак, который помогает анализировать XML-сообщения.
Мы рекомендуем проверять настройки подключения не только на уровне "где стоит ключ", но и на уровне целевого адреса запроса. В конфигурациях 1С (УТ, ERP, КА) в настройках интеграции с ИС МП есть флаг Тестовый контур (или "Песочница").
Разберем ситуацию, которая привела к ошибке у автора вопроса:
api.crpt.ru против api-sb.crpt.ru).Решение: Внимательно проверьте настройки интеграции с ИС МП. Убедитесь, что галочка тестового режима снята, если вы планируете работать с реальными кодами маркировки.
В контексте обсуждения "как прокинуть ключ на сервер" важно упомянуть современный подход. Сейчас крайне сложно (а для ключей ФНС — невозможно) скопировать сертификат с токена директора на сервер. Ключи стали неизвлекаемыми.
Чтобы не вставлять токен директора физически в сервер (что небезопасно и неудобно), используйте МЧД (Машиночитаемые доверенности):
Такой подход позволяет легально и технически грамотно настроить автоматическое подписание на сервере без нарушения правил безопасности.