Как исправить ошибку отправки почты TLS/SSL в старых версиях 1С:Предприятие?

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

При работе с устаревшими платформами 1С:Предприятие (например, версии 8.3.8) часто возникают сложности при попытке отправить электронную почту через современные почтовые сервисы, такие как Office 365 или Yandex. Ошибки вида Invalid token, probably not an SSL server или коды ошибок SMTP error 451/503 свидетельствуют о том, что механизмы шифрования платформы не соответствуют актуальным требованиям безопасности (протоколам TLS 1.2+).

Давайте вместе разберем, как можно решить эту проблему, не прибегая к радикальному обновлению всей платформы на сервере.

Метод 1: Обновление файла сертификатов cacert.pem

Одной из причин возникновения ошибки является устаревший список доверенных корневых сертификатов, который хранится в файле cacert.pem внутри каталога установки платформы. Если сертификат почтового сервера не находится в этом списке, 1С блокирует соединение.

  1. Найдите актуальную версию платформы 1С (более свежий релиз, где отправка почты работает корректно).
  2. Перейдите в каталог установки этой версии в папку bin.
  3. Скопируйте файл cacert.pem.
  4. Замените этим файлом аналогичный cacert.pem в каталоге bin вашей старой версии платформы.

После замены перезапустите сервер 1С (или клиентское приложение), чтобы изменения вступили в силу. Этот метод позволяет платформе «узнать» новые сертификаты, однако он не всегда помогает, если проблема кроется в самой поддержке протокола TLS 1.2 ядром системы.

Метод 2: Использование SSL-туннеля Stunnel

Если обновление файла сертификатов не решило задачу, мы можем воспользоваться утилитой Stunnel. Это специальный инструмент, который выступает в роли «прослойки» (прокси-сервера) между 1С и почтовым сервером. Вся тяжелая работа по организации защищенного соединения по протоколу TLS ложится на Stunnel, а 1С общается с ним через обычное соединение.

Шаг 1: Настройка конфигурации Stunnel

Вам необходимо создать файл конфигурации (обычно stunnel.conf), в котором описываются параметры подключения. Рассмотрим пример для почтовых сервисов Яндекса:


[yandex-smtp]
client = yes
accept = 127.0.0.1:25
connect = smtp.yandex.ru:465
verifyChain = yes
CAfile = ca-certs.pem
checkHost = smtp.yandex.ru
OCSPaia = yes

Шаг 2: Настройка 1С

После запуска Stunnel, который слушает запросы на локальном порту (в примере выше — 127.0.0.1:25), нам нужно изменить настройки профиля интернет-почты в 1С:

Почему возникают эти ошибки?

Проанализируем ситуацию: современные почтовые сервера требуют обязательного использования протокола TLS 1.2 или 1.3. Старые платформы 1С (до релиза 8.3.10 и выше) использовали библиотеки OpenSSL старых версий, которые просто не «понимали» современных требований безопасности. При попытке установления соединения происходит Handshake (рукопожатие), в ходе которого сервер сообщает свои параметры безопасности, а платформа 1С, не имея соответствующих алгоритмов шифрования, разрывает соединение с ошибкой.

Рекомендация

Несмотря на то, что использование Stunnel или подмена cacert.pem успешно решают проблему в моменте, мы настоятельно рекомендуем в долгосрочной перспективе планировать обновление платформы 1С до актуальных версий. Современные платформы используют системные библиотеки Windows для работы с криптографией, что делает отправку почты более надежной, безопасной и не требующей сторонних прослоек.

Если же обновление невозможно по техническим причинам (например, из-за специфики доработок конфигурации), используйте Stunnel как наиболее стабильное и проверенное решение для организации «моста» между вашей старой версией 1С и современным интернетом.

← На главную