Вопрос или проблема
ОС: CentOS
Домен: TownsendHardware.com
Я использовал Plesk для управления одним сервером с примерно двумя десятками доменов в течение многих лет. Я использовал Let’s Encrypt для SSL-сертификатов, и с электронной почтой никогда не было проблем. Чуть больше месяца назад я прекратил использовать Plesk.
Два дня назад у системы розничной торговли клиента перестали отправляться электронные письма с выставленными счетами, ссылаясь на то, что она не может подключиться к SMTP-серверу, потому что не может установить TLS-соединение.
SSL-сертификат сервера не удалось проверить по следующим причинам:
- У сертификата сервера есть следующие ошибки.
- Требуемый сертификат не находится в пределах его срока действия при проверке по текущим системным часам.
Это было шоком, потому что я был уверен, что восстановил процесс SSL Let’s Encrypt, установив CertBot и создав заново SSL для всех доменов. Я проверил перед написанием этого поста, и они все актуальны. Однако, когда я посетил CheckTLS.com и запустил их тест, мне сказали следующее:
Нажмите, чтобы увидеть более крупное изображение
Соответствующая часть:
Сертификат #1 из 3 (отправленный MX): ОКОНЧЕН СРОК
ОШИБКА ВАЛИДАЦИИ СЕРТИФИКАТА: сертификат истек
Электронная почта зашифрована, но домен получателя не подтвержден
Имя сертификата не подтверждено (mail.townsendhardware.com != townsendhardware.com | DNS:townsendhardware.com) (включение Send SNI может решить эту проблему: Попробуйте это)
Электронная почта зашифрована, но хост не подтвержденНе действителен до: 18 июля 11:54:10 2024 по всемирному времени
Не действителен после: 16 октября 11:54:09 2024 по всемирному времени
субъект: /CN=townsendhardware.com
выдаватель: /C=US/O=Let’s Encrypt/CN=R11
Для справки, я действительно пытался использовать Send SNI, чтобы увидеть, решит ли это проблему. Не решило.
Я видел подобные посты здесь на Server Fault (например, это) и следовал их рекомендациям, где мог, но большинство сводится к созданию поддомена mail.townsendhardware.com
и использованию валидации HTTPS_01, что мне никогда не приходилось делать и чего я не хочу делать. Я пытался использовать CertBot для создания валидации DNS_01, но это не получилось (неудивительно), так как (как я подозреваю) он ищет TXT-запись ACME в mail.townsendhardware.com
. (То есть я считаю, что именно там он хочет найти _acme-challenge.mail.townsendhardware.com
. Я пытался разместить это в структуре DNS townsendhardware.com
без успеха.)
Это дало мне идею просто создать домен mail.townsendhardware.com
в структуре DNS с соответствующими записями A, MX и TXT (назовем это зомби-поддоменом)… но это ведь не имеет смысла, правда? И это не требовалось раньше.
Итак, мой вопрос: как Plesk настраивал Let’s Encrypt для правильного шифрования моего SMTP-сервера без необходимости создавать целый поддомен?
Для справки:
Ответ или решение
Когда вы сталкиваетесь с проблемой, когда SSL-сертификат Let’s Encrypt для вашего почтового сервера не распознается, это может быть связано с несколькими факторами, особенно после перехода от Plesk к другим методам управления сервером. В данной ситуации ключевые аспекты проблемы изложены, и далее будут проведены рекомендации для ее решения.
Причины проблемы
-
Истекший сертификат: Согласно результатам, предоставленным вами, сертификат, отправляемый вашим MX-сервером, истек. Это означает, что SSL-сертификат, установленные на вашем сервере, больше не действителен и его необходимо обновить или переустановить.
-
Проблемы с верификацией сертификата: Ваша текущая настройка может не соответствовать необходимым для верификации стандартам, что приводит к ошибкам при проверке сертификата (например, несоответствие доменных имен).
-
Отсутствие необходимых DNS-записей: Если вы планируете использовать DNS_01 верификацию, вам потребуется убедиться, что все необходимые записи DNS корректно настроены. Это может включать настройки поддомена mail.townsendhardware.com, который, кажется, используется для верификации.
Рекомендации по решению
-
Проверка сертификатов:
- Используйте команду
certbot certificates
для проверки всех сертификатов, установленных на вашем сервере. Убедитесь, что все они актуальны и не имеют статуса "истекший".
- Используйте команду
-
Обновление сертификатов:
- Если сертификат действительно истек, попробуйте выполнить команду:
sudo certbot renew
- Это должно инициировать процесс автоматического продления сертификатов. Если необходимо, можно запустить Certbot вручную с использованием параметров DNS_01 для создания новых записей.
- Если сертификат действительно истек, попробуйте выполнить команду:
-
DNS-записи:
- Создайте поддомен
mail.townsendhardware.com
и убедитесь, что он указывает на ваш почтовый сервер, добавив необходимые записи A, MX и TXT. Запись TXT, связанная с_acme-challenge.mail.townsendhardware.com
, должна быть создана для успешной балансировки проверки с Certbot. - Убедитесь, что изменения DNS-сервисов вступили в силу (это может занять некоторое время).
- Создайте поддомен
-
Настройка на базе Certbot:
- Если вы не хотите использовать поддомен, проверьте конфигурацию вашего Certbot и убедитесь, что вы используете подходящие параметры, которые позволяют работать с основным доменом
townsendhardware.com
для верификации SSL.
- Если вы не хотите использовать поддомен, проверьте конфигурацию вашего Certbot и убедитесь, что вы используете подходящие параметры, которые позволяют работать с основным доменом
-
Используйте SNI (Server Name Indication):
- Убедитесь, что ваш почтовый сервер настроен на поддержку SNI. Это может помочь в решении проблемы с несовпадением имени сертификата и домена.
Заключение
Проблема с нераспознаванием SSL-сертификатов Let’s Encrypt может быть решена путем коррекции настроек вашего почтового сервера, обновления сертификатов и проверки правильности конфигурации DNS. Если все действия выполнены, и ошибка не устранена, возможно, стоит обратиться к документации вашего почтового сервера или сообществу поддержки, чтобы получить более специфичные рекомендации в зависимости от используемого программного обеспечения.