
私はメールサーバーをセットアップしました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を設定すると、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 はすでにこの可能性について言及していますが、有料のワイルドカード証明書を使用した場合にのみ可能であると示唆しています。これは正確には正しくありません。
Let´s Encrypt ACMEv2はワイルドカードをサポートしていますただし、設定にはある程度の経験が必要です。
これらの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 の電子メール シールドを無効にする必要がありました。