← На главную
При доработке и отладке интеграции с сервисом 1С:Кабинет сотрудника в конфигурации 1С:Зарплата и управление персоналом разработчики сталкиваются с необходимостью подписывать документы электронной подписью. Использовать реальные квалифицированные сертификаты на тестовых базах небезопасно и не всегда возможно. Разберем подробно, какие виды подписей используются в сервисе, где взять тестовые сертификаты и как правильно настроить окружение для бесперебойной работы.
1. Разделение потоков подписания: сотрудник и организация
Прежде чем приступать к генерации сертификатов, проанализируем схему кадрового электронного документооборота (КЭДО) в сервисе. В процессе участвуют две стороны, и требования к их сертификатам кардинально различаются:
- Подпись со стороны сотрудника: для тестирования подписания кадровых документов сотрудником сторонний сертификат вообще не требуется. В сервисе 1С:Кабинет сотрудника работники подписывают документы усиленной неквалифицированной электронной подписью (УНЭП). Она выпускается бесплатно непосредственно в личном кабинете сотрудника (в мобильном приложении или веб-интерфейсе). Для корректной работы достаточно убедиться, что в настройках интеграции в 1С актуализирован корневой сертификат сервиса.
- Подпись со стороны работодателя: подписание приказов, расчетных листков и заявлений от лица организации выполняется на стороне 1С:ЗУП. В рабочей среде закон требует использовать усиленную квалифицированную электронную подпись (УКЭП). Для разработки и тестирования функционала достаточно выпустить тестовый сертификат (ГОСТ или RSA) и правильно подключить его к информационной базе.
2. Получение тестового сертификата через тестовый УЦ
Рассмотрим основной способ получения сертификата с поддержкой алгоритмов ГОСТ. Компания КриптоПро предоставляет публичный тестовый удостоверяющий центр (Test CA), позволяющий бесплатно генерировать сертификаты для разработчиков.
- Перейдем на веб-узел тестового удостоверяющего центра КриптоПро и выберем создание тестового сертификата пользователя.
- Заполним необходимые поля субъекта: фамилию, имя, наименование организации. Важно: для того чтобы 1С:ЗУП корректно связала подпись с организацией и ответственным лицом, укажите в реквизитах сертификата реальные (или тестовые, но полностью совпадающие с данными в вашей базе)
ИНН организации, а также СНИЛС и ИНН физического лица.
- Сгенерируем закрытый ключ и сохраним созданный сертификат в личное хранилище сертификатов операционной системы.
- Обязательно скачаем и установим корневой сертификат тестового УЦ в системное хранилище «Доверенные корневые центры сертификации» (Trusted Root Certification Authorities). Если этого не сделать, платформа 1С не сможет построить цепочку доверия и отклонит сертификат как недействительный.
3. Альтернативные варианты: локальные и самоподписанные сертификаты
Если специфика доработки не требует обязательной проверки алгоритмов ГОСТ, а тестируется сам программный механизм подписания файлов, можно использовать альтернативные варианты:
- Использование PowerShell (New-SelfSignedCertificate): с помощью стандартных команд Windows можно выпустить самоподписанный сертификат RSA. Подсистема криптографии платформы 1С поддерживает стандартный криптопровайдер Microsoft CryptoAPI/CNG, что позволяет отлаживать механизмы без развертывания дополнительных ГОСТ-провайдеров. Корневой или сам самоподписанный сертификат также обязательно помещаем в доверенные корневые центры.
- Развертывание локального УЦ: если требуется изолированный тестовый контур, можно настроить локальный центр сертификации на базе Active Directory Certificate Services (AD CS) или OpenSSL. Это позволит выпускать произвольное количество тестовых сертификатов для любых сценариев.
- Тестовые контуры операторов ЭДО: при наличии действующего договора сопровождения можно обратиться к спецоператору ЭДО, обслуживающему предприятие, для выпуска учебного сертификата разработчика.
4. Тонкости настройки криптографии в 1С:Предприятии
Разберем типичные проблемы, которые могут возникнуть при использовании тестовых сертификатов в 1С, и способы их решения:
- Клиент-серверный режим работы: выясним, где именно выполняется операция криптографии. Если в базе включена опция «Подписывать и шифровать на сервере» или «Проверять подписи на сервере», то криптопровайдер, сертификат и закрытый ключ должны быть установлены не только на рабочем месте программиста, но и на сервере 1С:Предприятия (в хранилище учетной записи службы 1С или в хранилище локального компьютера
Local Machine).
- Ошибка проверки статуса отзыва сертификата: тестовые сертификаты часто не имеют доступных внешних точек распространения списков отзыва (CRL) или служб OCSP. Из-за этого при попытке подписать файл 1С может выдать ошибку: «Не удалось выполнить проверку отзыва сертификата». Чтобы обойти это поведение на этапе разработки, в настройках программы отключают онлайн-проверку отзыва либо прописывают в конфигурационном файле платформы
conf.cfg параметр:
IgnoreServerCertificatesChainRevocationSoftFail=true
Это позволит платформе игнорировать недоступность серверов отзыва тестового УЦ и успешно завершать операцию формирования подписи.