Dovecot SSL - IMAP 工作,SMTP 失败

Jac*_*row 0 smtp dovecot ssl-certificate

我正在使用 postfix+dovecot 设置一个小型邮件服务器。运行oppenssl s_client -connect mail.myserver.com:993(IMAP) 时,会显示服务器的证书,我可以让电子邮件客户端正常连接。

但是,当我将端口更改为25(SMTP) 时,出现错误 SSL routines:ssl3_get_record:wrong version number,并且没有返回任何证书。

从我的研究来看,10-ssl.conf文件中允许的协议和密码似乎是问题所在,但我尝试了很多组合,但仍然出现相同的错误。这就是他们目前的情况:

ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv3 !SSLv2
ssl_cipher_list = HIGH:!SSLv2:!SSLv3:!TLSv1.0:!aNULL:!MD5
Run Code Online (Sandbox Code Playgroud)

如何让服务器返回 SMTP 端口上的证书?

Esa*_*nen 5

您的 Postfix + Dovecot 设置有两种不同的服务器软件,它们扮演着不同的角色:

  • 你的配置中的 Dovecot 是一个邮件存储服务器,负责 IMAP。此外,Dovecot为 Postfix提供 SASL 身份验证。该配置文件/etc/dovecot/conf.d/10-ssl.conf仅适用于 Dovecot,因此它仅影响STARTTLS端口 143 上的IMAP和端口 993 上的 IMAPS。

  • 后缀是邮件传送代理(MTA)负责SMTP,无论是对TCP端口25上其他MTA,用于提交邮件STARTTLS在端口587或SMTPS端口465 Postfix的主要配置文件main.cfmaster.cf/etc/postfix/

您只能测试IMAPS993和SMTPS465使用oppenssl s_client -connect mail.example.com:465。对于测试STARTTLS的SMTP端口25587和IMAP端口143,你需要使用:

openssl s_client -starttls smtp -connect mail.example.com:25
openssl s_client -starttls smtp -connect mail.example.com:587
openssl s_client -starttls imap -connect mail.example.com:143
Run Code Online (Sandbox Code Playgroud)

还有几个用于测试的网站和工具,在 Security Stack Exchange question中进行了讨论。有关在 Postfix 中配置 TLS,请参阅Postfix TLS 支持。在Postfix和Dovecot的SASL文档也有配置的例子提交。此外,您需要将 TLS 参数添加到您的main.cf.