
Я настроил почтовый сервер с помощьюdocker-почтовый сервер.
DKIM
, SPF
, и DMARC
настроены нормально.
SSL настроен с помощью Let's Encrypt. На сервере включены TLS и STARTTLS.
Я провел тест TLS/SSL наhttps://www.checktls.com/TestReceiver, и там говорилось, что мой SSL работает нормально:
Я могу использовать Mozilla Thunderbird для получения и отправки электронной почты через сервер:
Однако при входе в Thunderbird для получения электронной почты по протоколу IMAP или при отправке по протоколу SMTP я вижу это предупреждение (я все равно могу отправлять и получать электронную почту, если нажму кнопку «Подтвердить исключение безопасности»).
Я проверил еще несколько сайтов для тестирования TLS/SSL электронной почты (1и2) и они, похоже, думают, что мои сертификаты настроены неправильно («Сертификат не соответствует имени хоста»).
Мысли?
Обновлять:Мне удалось достичь точки, где imap.domainname.com
распознается как Thunderbird
имеющий действительный сертификат, но не imap.domainname.com:143
. Как это можно исправить, пожалуйста?
решение1
Сообщение об ошибке говорит ровно то, что показывают ваши скриншоты: имя хоста в сертификате не совпадает. Вы проверяете свой сертификат с помощьюпочта.yourdomain.com, и он говорит, что он действителен, поэтому вы создали свой сертификат именно для этого имени хоста. Вы настраиваете thunderbird для использованияIMAP.yourdomain.com.
Если вы не настроили свои сертификаты так, чтобы они содержали альтернативные имена субъектов и включали «imap.yourdomain.com», сообщение об ошибке абсолютно верно.
По умолчанию каждый сертификат включает в себя только одно имя хоста, и они должны совпадать.
Другой возможностью было бы приобрести wildcard сертификат *.yourdomain.com. Wildcard сертификаты обычно стоят дороже, в то время как обычные сертификаты с альтернативными именами субъектов могут быть даже бесплатными при использовании «let encrypt» и их продлении каждые 90 дней.
решение2
Это несоответствие между mail.example.com
в сертификате imap.example.com
и smtp.example.com
в конфигурации клиента. Вы могли бы либо
- исправить конфигурацию клиента вручную,
- настроить метод автоконфигурации, чтобы упростить задачу, или
- просто расширьте сертификат, чтобы охватить все необходимые имена хостов.
SRV
Автоматическая настройка с использованием записей DNS
Звездный путь (RFC6186) для поиска серверов отправки и доступа к электронной почте будут использовать SRV
записи DNS. С помощью этого вы можете указать, что отправка IMAP и SMTP обслуживается из mail.example.com
.
_imap._tcp.example.com. SRV 0 1 143 mail.example.com.
_submission._tcp.example.com. SRV 0 1 587 mail.example.com.
Автоконфигурация Thunderbird
К сожалению, Thunderbird в настоящее время не поддерживает SRV
записи (и, согласно обсуждению наОшибка 342242, вряд ли реализует его). Однако у него есть другая реализация дляАвтоконфигурация: вы можете служитьXML-файл конфигурациииз с напримерhttp://autoconfig.example.com/mail/[email protected]
<?xml version="1.0"?>
<clientConfig version="1.1">
<emailProvider id="example.com">
<domain>example.com</domain>
<displayName/>
<incomingServer type="imap">
<hostname>mail.example.com</hostname>
<port>143</port>
<socketType>STARTTLS</socketType>
<authentication>password-encrypted</authentication>
<username>[email protected]</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>mail.example.com</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<authentication>password-encrypted</authentication>
<username>[email protected]</username>
</outgoingServer>
</emailProvider>
</clientConfig>
Если Thunderbird не находит такой файл конфигурации в указанном месте, он по умолчанию использует адреса imap.example.com
, smtp.example.com
если только вы не выберете ручную настройку.
Добавление этих адресов в ваш сертификат
В качестве альтернативы вы можете добавить эти адреса в свой сертификат. Торстен уже упоминает эту возможность, но предполагает, что это будет возможно только с использованием платных wildcard-сертификатов. Это не совсем так, поскольку:
Let´s Encrypt ACMEv2 поддерживает подстановочные знаки, хотя его настройка требует некоторого опыта.
Нет необходимости иметь wildcard-сертификат для покрытия этих трех имен хостов, так какальтернативное имя субъектас (САН). Это возможнорасширить существующий сертификат с помощью Certbot, например
certbot certonly --cert-name mail.example.com -d imap.example.com,smtp.example.com
решение3
В моем случае проблемы начались после обновления до Thunderbird 78.5. Я решил проблемы (в ограниченном объеме) следуя инструкциям в
https://stackoverflow.com/questions/63947262/thunderbird-78-how-to-add-security-exception
Вам нужно будет добавить значения портов (разделенные запятыми, если у вас несколько портов) во:config в Тандербердек ключевому слову
network.security.ports.banned.override
Решение не было идеальным: мне пришлось деактивировать защиту электронной почты в Avast, чтобы иметь возможность отправлять и получать электронную почту.