Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C_MTLS_AUTH_FAIL 1С:Предприятие и СУБД

Настройка защищенного контура mTLS (Mutual TLS) в 1С:Предприятие 8.3

Обновлено: 26.08.2026 · Официальная документация ↗

При интеграции с банковскими шлюзами, ГИС и защищенными API возникают ошибки:

  • Сервер возвращает ошибку HTTP 400 No required SSL certificate was sent или 403 SSL Client Certificate Required.
  • Сбой инициализации объекта ЗащищенноеСоединениеOpenSSL при загрузке закрытого ключа.
  • Несовпадение формата сертификатов (PKCS#12 / PFX vs раздельные PEM-файлы).
  • Ошибки проверки цепочки доверия клиентского сертификата на серверах Linux.

1. Принцип работы двухсторонней аутентификации (Mutual TLS)

При стандартном TLS только клиент проверяет валидность сертификата сервера. При mTLS сервер запрашивает у клиента его публичный сертификат и проверяет цифровую подпись, сформированную закрытым ключом клиента в процессе TLS-рукопожатия.

2. Подготовка сертификатов для платформы 1С

Платформа 1С:Предприятие требует передачи клиентских сертификатов в формате OpenSSL (файлы .crt / .pem и .key):

# Конвертация PFX/P12 контейнера в открытый сертификат клиента:
openssl pkcs12 -in client_bundle.pfx -clcerts -nokeys -out client.crt

# Извлечение закрытого ключа без шифрования (или с паролем):
openssl pkcs12 -in client_bundle.pfx -nocerts -nodes -out client.key

# Извлечение цепочки удостоверяющих центров (CA):
openssl pkcs12 -in client_bundle.pfx -cacerts -nokeys -out ca-chain.crt

3. Программный код вызова защищенного эндпоинта с mTLS

&НаСервере
Функция ВыполнитьЗапросmTLS(Хост, Путь, ТелоЗапросаJSON, ПарольККлючу = "") Экспорт
    
    // Пути к файлам сертификатов на сервере 1С
    ПутьКСертификатуКлиента = "/etc/ssl/1c/client.crt";
    ПутьККлючуКлиента        = "/etc/ssl/1c/client.key";
    ПутьККорневымCA          = "/etc/ssl/1c/ca-chain.crt";
    
    // 1. Инициализация сертификата клиента
    СертификатКлиента = Новый СертификатКлиентаOpenSSL(
        ПутьКСертификатуКлиента,
        ПутьККлючуКлиента,
        ПарольККлючу
    );
    
    // 2. Инициализация доверенных корневых сертификатов
    СертификатыCA = Новый СертификатыУдостоверяющегоЦентраOpenSSL(ПутьККорневымCA);
    
    // 3. Сборка параметров защищенного соединения
    ПараметрыTLS = Новый ПараметрыЗащищенногоСоединенияOpenSSL(СертификатКлиента, СертификатыCA);
    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(ПараметрыTLS);
    
    // 4. Создание HTTP-соединения
    HTTPСоединение = Новый HTTPСоединение(
        Хост,
        443,
        ,,,
        30,
        ЗащищенноеСоединение
    );
    
    HTTPЗапрос = Новый HTTPЗапрос(Путь);
    HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    
    Попытка
        Возврат HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
    Исключение
        ЗаписьЖурналаРегистрации("mTLS", УровеньЖурналаРегистрации.Ошибка,,, 
            "Ошибка mTLS рукопожатия: " + ОписаниеОшибки());
        ВызватьИсключение;
    КонецПопытки;
    
КонецФункции
💡 Практика специалистов: Никогда не храните файлы закрытых ключей клиентских сертификатов в общедоступных сетевых папках. Размещайте их в локальных защищенных каталогах каждого сервера кластера 1С с ограничением прав на уровне ОС.

Частые вопросы (FAQ)

Почему 1С падает с ошибкой 'Ошибка инициализации SSL соединения' при указании ключа?

Закрытый ключ может быть зашифрован неподдерживаемым алгоритмом (например, PKCS#8 PBKDF2). Пересохраните ключ в традиционном формате RSA (openssl rsa -in client.key -out client_rsa.key).

Можно ли использовать mTLS с сертификатами из хранилища Windows (Certificate Store)?

Объект СертификатКлиентаWindows доступен только для тонкого клиента под Windows. Для серверных фоновых заданий rphost (особенно на Linux) необходимо использовать строго СертификатКлиентаOpenSSL с явными файловыми путями.

Как проверить mTLS соединение из консоли сервера до запуска кода 1С?

Выполните команду: openssl s_client -connect host.ru:443 -cert client.crt -key client.key -CAfile ca-chain.crt.

Какие права доступа должны быть у файлов сертификатов на Linux?

Файлы ключей и сертификатов должны принадлежать пользователю службы 1С (chown usr1cv8:grp1cv8 /etc/ssl/1c/*) с правами chmod 600 для ключа и 644 для сертификата.

Полезные материалы
Рекомендуем