メールサーバ証明書は CheckTLS によれば有効だが、Thunderbird によれば無効である

メールサーバ証明書は CheckTLS によれば有効だが、Thunderbird によれば無効である

私はメールサーバーをセットアップしました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と認識されるところまでは到達しましたが、 では認識されません。これを修正するにはどうすればよいでしょうか?Thunderbirdimap.domainname.com:143

ここに画像の説明を入力してください

答え1

エラーメッセージはスクリーンショットに表示されている通りです: 証明書のホスト名が一致しません。証明書を確認してください。郵便.yourdomain.comで、有効と表示されているので、このホスト名に対して証明書を作成したことになります。Thunderbirdを設定すると、iマップ.yourdomain.com です。

証明書にサブジェクト代替名が含まれ、「imap.yourdomain.com」が含まれるように構成していない限り、エラー メッセージは完全に正しいです。

デフォルトでは、すべての証明書には 1 つのホスト名が含まれており、一致している必要があります。

もう 1 つの可能性は、ワイルドカード証明書 *.yourdomain.com を購入することです。ワイルドカード証明書は通常は高価ですが、サブジェクト代替名を持つ通常の証明書は、「lets encrypt」を使用して 90 日ごとに更新すれば無料になることもあります。

答え2

mail.example.comこれは証明書とimap.example.comクライアントsmtp.example.com設定の不一致です。

  • クライアントの設定を手動で修正する
  • 作業を簡単にするために自動設定方法を設定するか、
  • 必要なすべてのホスト名をカバーするように証明書を拡張するだけです。

DNSSRVレコードを使用した自動構成

標準化された方法(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 の自動設定

残念ながら、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 はすでにこの可能性について言及していますが、有料のワイルドカード証明書を使用した場合にのみ可能であると示唆しています。これは正確には正しくありません。

  1. Let´s Encrypt ACMEv2はワイルドカードをサポートしていますただし、設定にはある程度の経験が必要です。

  2. これらの3つのホスト名をカバーするためにワイルドカード証明書は必要ありません。主題の別名s (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

ポート値(複数のポートがある場合はカンマで区切る)を追加する必要があります。について:config サンダーバードキーワードに

network.security.ports.banned.override

解決策は完璧ではありませんでした。電子メールを送受信するには、Avast の電子メール シールドを無効にする必要がありました。

関連情報