SMTP TLS certificate name mismatch после смены имени почтового сервера

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

Проверка TLS сравнивает именно имя, указанное клиентом, с удостоверенными именами сертификата (SAN). Прежний CN без соответствующего SAN в современных клиентах может быть недостаточен. Решение — согласовать имя подключения и действительный сертификат; игнорировать предупреждение небезопасно.

В этой статье
  1. Что произошло и как распознать неисправность
  2. Причины и отличительные признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить результат и что делать при неуспехе

#Что произошло и как распознать неисправность

После изменения имени SMTP-сервера почтовая программа предупреждает, что имя сертификата не совпадает с адресом подключения, либо не может отправить сообщение. Например, клиент подключается к smtp.example.com, а сервер предъявляет сертификат только для другого имени. Отправка через порт 587 (STARTTLS) или 465 (TLS сразу) может быть затронута по-разному. Проверка TLS сравнивает именно имя, указанное клиентом, с удостоверенными именами сертификата (SAN). Прежний CN без соответствующего SAN в современных клиентах может быть недостаточен. Решение — согласовать имя подключения и действительный сертификат; игнорировать предупреждение небезопасно.

#Причины и отличительные признаки

Возможная причинаКак узнатьЧто делать
В сертификате нет имени подключенияПосле переименования узла сертификат не перевыпустили для нового DNS-имени.OpenSSL показывает в SAN прежнее имя, а клиент подключается к новому.Выпустить корректный сертификат на фактическое почтовое имя.
Клиент настроен на прежний или чужой серверПользователь вручную указал старый адрес сервера, который сейчас ведёт не туда.Другой клиент с документированным именем работает; DNS отличается.Исправить только сервер исходящей почты в настройках клиента.
SMTP выдаёт сертификат другого виртуального узлаНа сервере несколько TLS-контекстов/служб, сертификат для нужного SMTP-слушателя не выбран.На 465 и 587 ответы разные, сертификат веб-сайта в порядке.Настроить сертификат конкретно для SMTP-демона и порта.
Не проходит цепочка или срок действияБывает вместе с несовпадением имён, но требует отдельной проверки.В протоколе дополнительно certificate expired или unable to verify.Исправить актуальность и цепочку сертификата, не отключая проверку.

#Пошаговая диагностика и исправление

  1. Запишите адрес и порт реального SMTP-подключенияВ почтовом клиенте откройте настройки учётной записи и раздел сервера исходящей почты (SMTP). Запишите полное имя узла, порт и тип шифрования. Для Thunderbird это «Настройки учётной записи» → «Сервер исходящей почты (SMTP)». В Outlook путь зависит от версии и типа учётной записи, ищите параметры сервера, а не только адрес email. Не вводите пароли в запрос поддержки.
  2. Проверьте разрешение имени в DNSВ терминале откройте dig A smtp.example.com +short и dig AAAA smtp.example.com +short, заменив адрес вашим почтовым именем. Адрес должен вести к фактическому SMTP-серверу или доверенному шлюзу. Если ответ устарел, сначала устраните DNS-проблему. Неправильный DNS может заставить клиента видеть сертификат постороннего узла.
  3. Проверьте именно тот способ TLS, который использует клиентДля порта 587 с STARTTLS в терминале выполните openssl s_client -starttls smtp -connect smtp.example.com:587 -servername smtp.example.com -verify_hostname smtp.example.com. Для 465 используйте отдельную команду без -starttls smtp. Замените хост на свой. Если подключение зависло, проверьте порт и межсетевую доступность без отключения TLS.
  4. Прочитайте имена и срок сертификатаВ выводе OpenSSL найдите блок сведений о сертификате и итог Verify return code; для просмотра SAN удобнее сохранить публичный сертификат либо воспользоваться штатной проверкой панели хостинга. Сопоставьте DNS-имя в настройках клиента с полем Subject Alternative Name. Значение Verify return code: 0 (ok) само по себе может не подтвердить имя, если проверка выполнялась без -verify_hostname, поэтому соответствующий флаг важен.
  5. Уточните, какая служба отдаёт сертификатВ панели управления сервером найдите настройки почты и TLS-сертификата почтовой службы. Если веб-сайт имеет правильный HTTPS-сертификат, это ещё не означает, что SMTP на 465/587 использует его. Сохраните текущий путь к сертификату и ключу, время действия, имя SMTP-узла и настройку конкретного слушателя перед правкой.
  6. Согласуйте имя клиента и сертификатПредпочтительно использовать документированное имя SMTP-сервера, для которого выпущен сертификат с соответствующим SAN. Если новое имя необходимо, выпустите сертификат через доверенный удостоверяющий центр и настройте именно SMTP-службу на его использование. Не копируйте закрытый ключ в общедоступную папку сайта и не устанавливайте небезопасные права на него.
  7. Примените изменение с проверкой конфигурацииЕсли сертификат обслуживается Exim/Postfix, перед его заменой создайте копию конфигурации и используйте штатную проверку синтаксиса MTA, затем разрешённую вашей панелью безопасную перезагрузку. Если сервер управляемый, используйте раздел управления сертификатами почты: ручная правка файлов может быть перезаписана панелью. После применения снова проверьте 587/465 именно тем способом, которым пользуется клиент.
  8. Проверьте отправку и возможность возвратаИз почтового клиента отправьте письмо на собственный адрес, убедитесь, что предупреждение об имени исчезло и пришло сообщение. Если вы получили новую ошибку доверия цепочке или авторизации, считайте это отдельной неисправностью и исправляйте по коду, не выбирая кнопку «Продолжить без проверки». Если настройки ухудшились, восстановите прежний сертификат/маршрут из копии и повторно проверьте соединение.
  9. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Тест STARTTLS для порта 587 в терминале, без sudo.
    Linux · Терминал (Bash)Команда
    Тест STARTTLS для порта 587 в терминале, без sudo. Замените имя хоста во всех трёх местах. Подключение само по себе не отправляет письмо, после вывода завершите его Ctrl+C.
    openssl s_client -starttls smtp -connect smtp.example.com:587 -servername smtp.example.com -verify_hostname smtp.example.com
    Вариант 2Отдельный тест TLS для 465 (без -starttls).
    Linux · Терминал (Bash)Команда
    Отдельный тест TLS для 465 (без -starttls). Замените домен; результаты могут отличаться от 587. Команда не меняет сервер.
    openssl s_client -connect smtp.example.com:465 -servername smtp.example.com -verify_hostname smtp.example.com

#Как проверить результат и что делать при неуспехе

Успех — оба настроенных пути SMTP, которыми действительно пользуются клиенты, предъявляют действительный сертификат с нужным SAN и проходят проверку доверия; клиент отправляет тестовое письмо без исключения TLS. Если ошибка только у одного пользователя, проверьте сохранённое старое имя в его настройках.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.