
我已經使用設定了電子郵件伺服器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 使用影像映射.yourdomain.com。
除非您將憑證配置為包含主題備用名稱並包含“imap.yourdomain.com”,否則錯誤訊息絕對正確。
預設情況下,每個憑證都包含一個主機名,且該主機名稱必須符合。
另一種可能性是購買通配符憑證 *.yourdomain.com。通配符憑證通常更昂貴,而使用「讓加密」並每 90 天更新一次時,具有主題備用名稱的普通憑證甚至可以免費。
答案2
這是mail.example.com
證書中的和imap.example.com
客戶smtp.example.com
端配置中的不符。你可以
- 手動修復客戶端配置,
- 設定自動配置方法以使事情變得更容易,或者
- 只需擴展證書以涵蓋所有必需的主機名稱即可。
使用 DNSSRV
記錄自動配置
標準化方式(RFC 6186)用於定位電子郵件提交和存取伺服器將使用 DNSSRV
記錄。使用此選項,您可以指定 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
除非您選擇手動配置。
將這些地址新增到您的憑證中
或者,您可以將這些地址新增到您的憑證中。 Torsten 已經提到了這種可能性,但建議只有使用付費通配符憑證才有可能。這並不完全正確,因為:
Let’s Encrypt ACMEv2 支援通配符,儘管配置它需要一些經驗。
不需要通配符憑證來涵蓋這三個主機名,因為主題替代名稱(SAN)。有可能使用 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
您必須在中新增端口值(如果有多個端口,則用逗號分隔)關於:配置 在雷鳥到關鍵字
network.security.ports.banned.override
該解決方案並不完美:我必須停用 Avast 中的電子郵件封鎖才能發送或接收電子郵件。