假设我有一台具有某个 IP(IP1)的专用服务器。我通过 DNS 将多个域(例如example.com
,example.net
)重定向到该 IP。我在这里运行一个 nginx 服务器,并且我在这里正确设置了 SNI,并且它适用于 HTTPS。
我还为两个域设置了 MX 以指向服务器。我设置了一个 SMTP 服务器进行监听,它通过从电子邮件地址推断出允许的主机并拒绝任何其他主机的电子邮件,在端口 25 上做出正确响应。
我已经为此服务器设置了 TLS,但它只允许一个 SSL 证书(用于example.com
或 用于example.net
)。有没有办法在 SMTP 中使用 SNI(或等效的?),以便根据目标显示正确的 TLS 证书?
到目前为止,我还没有找到任何解决方法。我目前的策略是,要么对不同的域使用不同的 IP(对于 IPv6 来说可能可行,但对于我的情况而言,对于 IPv4 则不行),然后运行两个 SMTP 服务器(每个主机一个)和一个防火墙规则,以根据目标 IP 重定向到不同的端口。对于 2 个域来说,这很麻烦,但如果您有更多域,比如说 10 个域,那就完全不可行了。
有没有更好的策略?大型服务提供商如何处理众多主机的 SMTP?
答案1
这里不需要 SNI。证书主机名的验证是针对 MX 记录返回的主机名执行的,而不是目标电子邮件地址中的域名。因此,只要您确保所有域的所有 MX 记录都指向同一个主机名,您只需要该主机名的证书。
换句话说,如果您有一个 MX 记录,表明发往该域的所有电子邮件example.com
都应由邮件服务器处理mail.example.net
,那么该邮件服务器只需要具有主机名的证书mail.example.net
。