尽管此问题是在特定软件(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.com 和 mail.mydomain.com 设置了SSL证书(为 mydomain.com 的一个SSL证书) >以及几个子域(例如 mail.mydomain.com , webmail.mydomain.com 等)。
当我尝试使用上述设置从Discourse管理界面发送测试电子邮件时,它给我一个'无效的证书'错误。
因此,我尝试使用以下命令通过openssl s_client进行调试:
openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587
它通过CN发送 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.com 或 mydomain.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 >。如果这样做不安全,该如何解决此问题?
答案 0 :(得分:1)
与documented by Hostgator一样,使用hostgator服务器full.servername.com
的名称而不是您自己的域example.com
的名称作为邮件服务器实际上是正确的设置。这是因为邮件服务器不是特定于您的域的,而是用于多个域的公用邮件服务器。
请注意,这与Can't seem to connect to FTPS via Atom editor Remote FTP非常相似,但仅适用于SMTP,而不适用于FTP。我的解释也可以应用于SMTP。