電子郵件伺服器憑證根據 CheckTLS 有效,根據 Thunderbird 無效

電子郵件伺服器憑證根據 CheckTLS 有效,根據 Thunderbird 無效

我已經使用設定了電子郵件伺服器docker-郵件伺服器

DKIMSPF、 和DMARC配置良好。

SSL 是使用 Let's Encrypt 設定的。伺服器已啟用 TLS 和 STARTTLS。

我運行了 TLS/SSL 測試https://www.checktls.com/TestReceiver,它說我的 SSL 工作正常:

在此輸入影像描述

在此輸入影像描述

我能夠使用 Mozilla Thunderbird 透過伺服器接收和發送電子郵件:

在此輸入影像描述

但是,當登入 Thunderbird 透過 IMAP 接收電子郵件或透過 SMTP 發送時,我會看到此警告(如果單擊「確認安全例外」按鈕,我仍然能夠發送和接收電子郵件。)

在此輸入影像描述

我檢查了其他幾個電子郵件 TLS/SSL 測試網站(12)而且他們似乎認為我的證書設定不正確(“證書與主機名稱不符”)。

想法?


更新: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.comsmtp.example.com除非您選擇手動配置。

將這些地址新增到您的憑證中

或者,您可以將這些地址新增到您的憑證中。 Torsten 已經提到了這種可能性,但建議只有使用付費通配符憑證才有可能。這並不完全正確,因為:

  1. Let’s Encrypt ACMEv2 支援通配符,儘管配置它需要一些經驗。

  2. 不需要通配符憑證來涵蓋這三個主機名,因為主題替代名稱(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 中的電子郵件封鎖才能發送或接收電子郵件。

相關內容