我在 VPS 上设置了一个 Web 和电子邮件服务器,该服务器使用具有多个虚拟主机的 apache2 以及电子邮件服务器的 postfix、dovecot 和 roundcube。当我尝试使用 roundcube 发送邮件时,我遇到了身份验证失败的问题,我想这可能与 /etc/mailname (host.vpshoster.com) 和为其中一个虚拟主机 (www.example.com) 注册的 SSL 证书不匹配有关。它们必须匹配吗?
答案1
身份验证错误不是由于 /etc/mailname 与 SSL 证书上的通用名称 (CN) 不匹配而直接导致的,而是由于邮件服务器配置错误导致的;但是,一旦我让邮件服务器正常工作,当我向 Gmail 帐户发送电子邮件时,CN 不匹配确实会导致安全警告。我创建了一个新的 SSL 证书,因此 CN 与 /etc/mailname 匹配,与此问题相关的安全警告就消失了(尽管我仍然收到与未加密邮件相关的安全警告)。
经验教训:电子邮件服务器使用的 SSL 证书上的 CN 应该与电子邮件服务器的名称相匹配,而不是与电子邮件服务器托管在同一台机器上的虚拟主机的名称相匹配(我将电子邮件服务器和所有虚拟主机都包含在同一个 SSL 证书上,但首先列出电子邮件服务器以正确设置 CN)。
编辑:
除了从原始问题中学到的教训之外,我在设置邮件服务器的过程中还学到了以下内容:
“此外,对于某些邮件服务(如 Gmail),您需要在邮件服务器的 IP 上设置反向 DNS,并且该名称也需要与邮件名称匹配” -ivanivan
我的 IPv4 地址有反向 DNS PTR 记录,但我的 IPv6 PTR 记录是错误的,因此我必须更新它。事实上,如果没有正确的 PTR 记录,我发送到 Gmail 的电子邮件根本无法送达。它们会将有关 IPv6 发送指南的信息返回给发件人。
该邮件仍未加密。请参阅外发电子邮件未加密我的 postfix 配置以及我如何解决加密问题。