Как настроить OpenID-авторизацию в 1С при использовании самоподписанного SSL-сертификата?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При использовании OpenID-аутентификации между базами данных 1С часто возникает необходимость защитить сетевое взаимодействие по протоколу HTTPS. Если для базы-провайдера OpenID (OpenID Provider — OP) выпущен самоподписанный SSL-сертификат, платформа 1С или клиентское приложение блокирует защищенное TLS-соединение. В результате пользователи получают ошибки авторизации. Проанализируем ситуацию, выясним причины такого поведения и разберем по шагам, что необходимо сделать на клиенте и сервере для успешной работы системы.

Разберем архитектуру взаимодействия OpenID в 1С

Рассмотрим подробно, как именно осуществляется аутентификация через OpenID. Процесс проверки доверия происходит на двух независимых уровнях:

  1. Серверный уровень (Server-to-Server): База-клиент (Relying Party — RP), опубликованная на веб-сервере, выполняет служебный HTTPS-запрос к базе-провайдеру для получения файла описания XRDS (по адресу вида /e1cib/oid2op) и проверки авторизационного токена. Если операционная система или веб-сервер базы-клиента не доверяет SSL-сертификату провайдера, серверный запрос завершается ошибкой.
  2. Клиентский уровень (Client-to-Server): Приложение пользователя (Тонкий клиент или Веб-клиент в браузере) перенаправляется на форму аутентификации OpenID-провайдера. Если на клиентском компьютере самоподписанный сертификат не внесен в список доверенных, установка защищенного соединения блокируется операционной системой или браузером.

Таким образом, использование самоподписанного сертификата без дополнительных настроек доверия на клиентах работать не будет.

Выясним особенности работы платформы 1С с хранилищем сертификатов

Посмотрим на особенности проверки SSL-сертификатов в различных версиях платформы 1С:

В современных версиях платформы (начиная с версии 8.3.8 и выше) 1С использует системное хранилище сертификатов операционной системы. Для ОС Windows это хранилище «Доверенные корневые центры сертификации» (Trusted Root Certification Authorities) локального компьютера или текущего пользователя. В дистрибутивах Linux используется системный каталог сертификатов (например, /etc/ssl/certs).

Если же используется устаревшая платформа (версии 8.3.7 и ниже) или включен соответствующий режим совместимости, платформа использует собственное файловое хранилище cacert.pem, расположенное в каталоге bin установленной платформы 1С. В этом случае сертификат провайдера требуется вручную вносить в файл cacert.pem в PEM-формате.

Разберем по шагам порядок настройки сертификата

Рассмотрим последовательность действий, необходимых для обеспечения корректной работы OpenID с самоподписанным сертификатом:

  1. Экспорт сертификата: На веб-сервере, где опубликован OpenID-провайдер, экспортируем SSL-сертификат (или корневой сертификат локального CA, если он используется) в файл с расширением .cer или .crt.
  2. Установка на веб-сервер базы-клиента: Импортируем экспортированный сертификат в хранилище «Доверенные корневые центры сертификации» локального компьютера на сервере, где развернута база-клиент. Это необходимо для корректного выполнения фоновых запросов к файлу vrd и XRDS-описателю провайдера.
  3. Установка на клиентские ПК: Для обеспечения работы Тонкого клиента и Веб-клиента необходимо установите данный сертификат в хранилище «Доверенные корневые центры сертификации» на каждом клиентском компьютере.

Рассмотрим альтернативные варианты решения без ручной установки сертификатов

Если разворачивать сертификат вручную на каждую рабочую станцию неудобно, проанализируем альтернативные способы организации доверия:

  1. Развертывание корпоративного Центра Сертификации (CA): Выпускаем сертификат для OpenID-провайдера с помощью внутреннего центра сертификации (например, Active Directory Certificate Services). Корневой сертификат этого CA распространяется на все компьютеры домена через Доменные групповые политики (GPO) один раз, после чего все выданные им сертификаты автоматически становятся доверенными.
  2. Использование бесплатных публичных сертификатов: Если сервер доступен из сети Интернет (или есть возможность подтверждения владения доменной зоной через DNS), рекомендуем использовать бесплатные доверенные сертификаты (например, Let's Encrypt). Такие сертификаты изначально входят в списки доверенных во всех современных ОС, поэтому дополнительные настройки на клиентах не потребуются.
← На главную