При работе с устаревшими платформами 1С:Предприятие (например, версии 8.3.8) часто возникают сложности при попытке отправить электронную почту через современные почтовые сервисы, такие как Office 365 или Yandex. Ошибки вида Invalid token, probably not an SSL server или коды ошибок SMTP error 451/503 свидетельствуют о том, что механизмы шифрования платформы не соответствуют актуальным требованиям безопасности (протоколам TLS 1.2+).
Давайте вместе разберем, как можно решить эту проблему, не прибегая к радикальному обновлению всей платформы на сервере.
Одной из причин возникновения ошибки является устаревший список доверенных корневых сертификатов, который хранится в файле cacert.pem внутри каталога установки платформы. Если сертификат почтового сервера не находится в этом списке, 1С блокирует соединение.
bin.cacert.pem.cacert.pem в каталоге bin вашей старой версии платформы.После замены перезапустите сервер 1С (или клиентское приложение), чтобы изменения вступили в силу. Этот метод позволяет платформе «узнать» новые сертификаты, однако он не всегда помогает, если проблема кроется в самой поддержке протокола TLS 1.2 ядром системы.
Если обновление файла сертификатов не решило задачу, мы можем воспользоваться утилитой 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С:
127.0.0.1.Stunnel (в нашем случае 25).Профиль.ИспользоватьSSLSMTP = Ложь, так как шифрованием теперь занимается Stunnel, а не сама 1С.Проанализируем ситуацию: современные почтовые сервера требуют обязательного использования протокола TLS 1.2 или 1.3. Старые платформы 1С (до релиза 8.3.10 и выше) использовали библиотеки OpenSSL старых версий, которые просто не «понимали» современных требований безопасности. При попытке установления соединения происходит Handshake (рукопожатие), в ходе которого сервер сообщает свои параметры безопасности, а платформа 1С, не имея соответствующих алгоритмов шифрования, разрывает соединение с ошибкой.
Несмотря на то, что использование Stunnel или подмена cacert.pem успешно решают проблему в моменте, мы настоятельно рекомендуем в долгосрочной перспективе планировать обновление платформы 1С до актуальных версий. Современные платформы используют системные библиотеки Windows для работы с криптографией, что делает отправку почты более надежной, безопасной и не требующей сторонних прослоек.
Если же обновление невозможно по техническим причинам (например, из-за специфики доработок конфигурации), используйте Stunnel как наиболее стабильное и проверенное решение для организации «моста» между вашей старой версией 1С и современным интернетом.