'hostname "mail.domain.tld" does not match the server certificate' :: SNI サポートは?Discourse コンテナから証明書をクエリする方法は?

ドメイン内の別のサーバーから POP3 メールサーバーにアクセスすると、何らかの証明書エラーが発生します。表示されるメッセージは「Job exception: hostname “mail.domain.tld” does not match the server certificate」ですが、バックトレースには実際のホスト名の不一致に関する詳細が含まれていません。

まず、この状況では SNI が必要であり、システム管理者は「Discourse が SNI を正しく使用するように設定されていないことが原因でこのエラーメッセージが出ている可能性がある」と指摘しています。証明書自体はテスト済みで、問題はないようです。

次に、デバッグについて確認させてください。Discourse コンテナ内から POP3(または証明書のリクエストと比較)にアクセスし、実際に証明書不一致を指摘するために比較されているデータを取得するには、どのようにすればよいでしょうか?ここで健全性チェックを行い、比較対象が本当に同種のもの(いわゆる「りんごとりんご」)であることを確認したいと考えています。

SNI をサーバーで無効化できるか確認しましたが、不可能との回答でした。システム管理者は以下のように述べています。

注意してください。メール SNI を無効化するサポートされたメカニズムは存在しません。そのため、Discourse 開発者と協力して対応する必要があります。以下のページがその際に役立つかもしれません:

https://stackoverflow.com/questions/30244745/opensslsslsslcontext-sni-servername-cb-not-working
https://stackoverflow.com/questions/30238304/opensslx509certificate-showing-certificate-for-wrong-domain

POP3 ではなく、Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver を使用することをお勧めします。

その指摘をいただき、とても嬉しいです。このオプションは至る所で見逃していましたし、最初から知っていればよかったと後悔しています。この情報をインストール手順に追加するか、あるいは app.yaml の中でメール設定を検討する際に言及するのが良いかもしれません。

また、私の状況に合わせてより明確な情報を得るため、こちらで意見を求めました。もしよろしければ、ご意見をお聞かせください。

実際には、メールサポートでの返信設定 の最初の投稿にリンクされています。

:bell: または、Gmail を使うことに抵抗がある場合は、シンプルで直接配送される受信メールサービス をご自身で設定することも可能です。

あなたの最初の投稿では、POP3 の罠に陥る際にどのドキュメントを参照していたかは明記されていませんが、上記の公式ガイドを参照していたと仮定すると、それは 3 月 28 日からそこにリンクされています。

この方法を使用する際のアドレスやドメインの構成について提案するため、別のトピックであなたの返信に回答しました。

私も参加表明します。また、SNI サポートの実装を心よりお願いいたします。Postfix と Dovecot は過去 1 年間でそれぞれ対応を完了し、私を含め多くの方がすでに移行を完了しています。Discourse は通常、こうした技術には早くから対応しているため、ロードマップからそれが欠落しているのは正直言って驚きました。

SNIが今後の開発の検討事項に含まれているか確認したくてご連絡しました。SafariとOutlookはどちらもSNIをサポートしており、すでに約5年間対応しています。もしSNIを単一のメールサーバーを指す代わりに直接使用できれば、メールサーバーの設定が大幅に簡素化されるのですが。