“hostname 'mail.domain.tld' 与服务器证书不匹配” :: 是否支持 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

我建议使用 https://meta.discourse.org/t/straightforward-direct-delivery-incoming-mail/49487,而不是 POP3。

很高兴你指出了这一点,我之前在任何地方都没见过这个选项,真希望一开始就知道。或许可以将此信息添加到安装说明中,或者甚至在 app.yaml 中提及,作为设置邮件部分时需要考虑的事项。

我也在 那里询问了一些意见,以便针对我的情况获得更清晰的说明。欢迎随时参与讨论。

它实际上链接在 设置通过电子邮件回复支持 的首帖中:

:bell: 或者,如果你不习惯使用 GMail,你也可以使用 简单直接的收件服务 来设置自己的收件服务。

你的原始帖子没有说明你参考的是哪份文档才掉进了 POP3 的兔子洞,但假设你查看的是上面链接的官方指南,它自 3 月 28 日起就已在其中链接。

我已在另一个主题中回复了你的留言,建议在使用此功能时如何构建地址和域名。

我也愿意积极参与,并恳请支持 SNI。Postfix 和 Dovecot 在过去一年中均已添加了对 SNI 的支持,包括我在内的许多用户也已完成了迁移。通常 Discourse 在这类问题上总是走在前列,因此看到路线图未将其列入,说实话我感到有些意外。

只是想确认一下,SNI 是否在未来的开发计划中?Safari 和 Outlook 都支持 SNI,而且已经支持了近五年。如果我能直接使用 SNI 而不是指向单一邮件服务器,这将大大简化我的邮件服务器配置。