Я настроил почтовый сервер, используя docker-mailserver .
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
. Что бы вы для этого исправили?
Несоответствие между mail.example.com
в сертификате и imap.example.com
и smtp.example.com
в конфигурации клиента. Вы можете либо
SRV
В стандартном режиме ( RFC 6186 ) для определения местоположения серверов отправки и доступа к электронной почте будут использоваться записи DNS SRV
. При этом вы можете указать, что и 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 в настоящее время не поддерживает записи SRV
(и, согласно разговору о ошибке 342242 , вряд ли она будет реализована). Однако у него есть другая реализация для автоконфигурации : вы можете обслуживать XML-файл конфигурации из
(скрыто) с, например,
<?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>user@example.com</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>mail.example.com</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<authentication>password-encrypted</authentication>
<username>user@example.com</username>
</outgoingServer>
</emailProvider>
</clientConfig>
Если Thunderbird не нашел такой файл конфигурации из этого места, по умолчанию используются адреса imap.example.com
и smtp.example.com
, если только вы выбираете ручную настройку.
В качестве альтернативы вы можете добавить эти адреса в свой сертификат. Торстен уже упоминает об этой возможности, но предполагает, что это возможно только при использовании платных сертификатов с подстановочными знаками. Это не совсем так, поскольку:
Let´s Encrypt ACMEv2 поддерживает подстановочные знаки , хотя для его настройки требуется некоторый опыт.
Нет необходимости иметь подстановочный сертификат для покрытия этих трех имен хостов, поскольку альтернативная тема имя s (SAN) . Можно расширить существующий сертификат с помощью Certbot , например
certbot certonly --cert-name mail.example.com -d imap.example.com, smtp.example.com
В сообщении об ошибке точно указано, что показывают ваши снимки экрана: имя хоста в сертификате не совпадает. Вы проверяете свой сертификат с помощью mail .yourdomain.com, и он говорит, что он действителен, поэтому вы создали свой сертификат именно для этого имени хоста. Вы настраиваете thunderbird для использования imap .yourdomain.com.
Если вы не настроили свои сертификаты так, чтобы они содержали альтернативные имена субъектов и не включали imap.yourdomain.com, сообщение об ошибке будет абсолютно правильным.
Автор по умолчанию каждый сертификат включает в себя ровно одно имя хоста, которое должно совпадать.
Другой возможностью было бы приобрести сертификат с подстановочным знаком * .yourdomain.com. Сертификаты с подстановочными знаками обычно дороже, в то время как обычные сертификаты с альтернативными именами субъектов могут быть даже бесплатными при использовании «позволяет шифровать» и обновлять их каждые 90 дней.
В моем случае проблемы начались после обновления до Thunderbird 78.5. Я решил проблемы (ограниченным образом), выполнив инструкции из
https://stackoverflow.com/questions/63947262/thunderbird-78-how-to-add-security-exception
You ' Придется добавить значения портов (разделенные запятыми, если у вас несколько портов) в about: config в Thunderbird к ключевому слову
network.security.ports.banned.override
. Решение не было идеальным: я должен деактивировать защита электронной почты в Avast для отправки и получения электронной почты.