Я пытаюсь настроить отправку Gmail как для отправки электронной почты через мой SMTP-сервер через TLS, и я получаю сообщение «Ошибка согласования tls, сертификат не соответствует хосту» с тех пор, как я обновил свой сертификат Lets Encrypt.
Предыстория: у меня есть сервер с выделенным IP-адресом, разделяющим несколько доменных имен. Я использую вируталмин/вебмин. У меня были проблемы с продлением, поэтому я запустил certbot вручную, проверив записи TXT. Я создал сертификаты с CN=domain.com и SANS=domain.com,www.domain.com,mail.domain.com. mail.domain.com — это настройка записи A, в которой cloudflare указывает непосредственно на IP-адрес (без прокси-сервера). Заметьте, раньше все работало нормально. Сервер разделяет несколько доменов. У основного домена нет проблем с электронной почтой. Ранее он перестал работать для dovecot и postfix, потому что мой сертификат не обновлялся с помощью mail.domain.com в списке SANS. Это сработало после исправления этого. У меня второй домен перестал работать с отправкой. POP3/IMAP не используется, так как электронная почта просто пересылается.
давайте зашифруем сгенерированные его файлы. Я устанавливаю карту postfix SNI, чтобы она указывала на файлы сертификатов.
Когда я запускаю openssl x509 -text в файлах, я вижу CN и SANS.
Когда я запускаю openssl s_client -connect mail.domain.com:25 -starttls smtp, он показывает только CN, а не SANS.
Отправка писем с основным доменом работает нормально. Отправка писем со вторым доменом дает ошибку. openssl дает тот же результат. Чтение файла показывает CN=domain.com и SANS=domain.com,www.domain.com,mail.domain.com. При подключении к smtp-серверу отображается только CN для соответствующего домена.
Я не уверен, с чем сравнивается gmail, когда он говорит, что «сертификат не соответствует хосту». Я думал, что это просто CN и SANS для имени сервера, но, может быть, это что-то еще?