邮件服务器的 SSL 证书无效

Invalid SSL Certificate for Mail Server

虽然这个问题是在特定软件(Discourse 论坛软件)的上下文中,但它实际上是关于邮件服务器的 SSL 证书。

这是我的设置:

主要网站:mydomain.com(托管在 Hostgator 上)

论坛网站(Discourse 论坛软件):forum.mydomain.com(托管在 DigitalOcean 上)

邮件服务器(Discourse 用于向会员发送电子邮件):mail.mydomain.com(托管在 Hostgator 上)

SMTP 的讨论设置:

DISCOURSE_SMTP_ADDRESS: mail.mydomain.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: forum-no-reply@mydomain.com
DISCOURSE_SMTP_PASSWORD: "mypassword"
DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

我在 Hostgator 上为 mydomain.commail.mydomain.com 设置了 SSL 证书(单个mydomain.com 以及多个子域(如 mail.mydomain.comwebmail. mydomain.com, 等)).

当我尝试使用上述设置从 Discourse 管理界面发送测试电子邮件时,出现“无效证书”错误。

因此,我尝试使用以下命令通过 openssl s_client 进行调试:

openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587

发送mydomain.com的SSL证书如下

subject=CN = mydomain.com

并使用 TLS v1.2

建立 SSL 会话

以下是之后 EHLO 的奇怪结果:

EHLO mail.mydomain.com
250-xx-xx-xx.webhostbox.net Hello forum.mydomain.com [xx.xx.xx.xx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250 HELP

正如您在上面代码的第二行中看到的,它从 xx-xx-xx.webhostbox.net 而不是 mail 进行响应。mydomain.commydomain.com

我想这就是我收到“无效证书”错误的原因。

如果我如下更改 Discourse SMTP 设置(仅更改第一行)

DISCOURSE_SMTP_ADDRESS: xx-xx-xx.webhostbox.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: forum-no-reply@mydomain.com
DISCOURSE_SMTP_PASSWORD: "mypassword"
DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

然后一切正常,所有电子邮件都已发送。

有人可以告诉我这个可行的解决方案是否安全吗?我认为它不安全,因为我使用 xx-xx-xx.webhostbox.net 作为 SMTP 地址(这可能会使电子邮件面临风险)而不是 mail。mydomain.com。如果这不安全,我应该如何着手获得该问题的安全解决方案?

因为 documented by Hostgator 使用 hostgator 服务器的名称 full.servername.com 而不是您自己的域名 example.com 作为邮件服务器实际上是正确的设置。这是因为邮件服务器不是特定于您的域,而是多个域的通用邮件服务器。

请注意,这与 非常相似,但仅适用于 SMTP 而不是 FTP。我的解释也适用于 SMTP。