服务器到服务器连接将不使用TLS,但SMTPD将会使用

我试图让我的电子邮件服务器来encryption我的电子邮件服务器和其他人之间的连接。 它目前可以通过TLS连接到自己,但似乎无法通过encryption连接到其他服务器。

在postfix main.cf中 – 当通过设置强制内部encryption时:

smtpd_tls_security_level = encrypt 

一切工作与内部TLS连接和电子邮件传递到Gmail,雅虎等,但是当我尝试强制服务器通过设置服务器encryption

 smtp_tls_security_level = encrypt 

电子邮件没有得到交付。 他们正在被发送到正常的TLS电子邮件提供商,如Gmail,雅虎等。两者都有相同的证书

 smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem smtpd_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem smtp_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem smtp_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem smtp_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem 

可能是什么问题?

如果有必要,我会买一个更好的证书,但是我没有读过。 我已经尝试过使用自签名的Cloudflare TLS,并且让我们对证书进行encryption,并且它们都产生相同的结果。

请问master.cf有问题吗? 或main.cf?

当发送服务器到服务器,您的服务器成为客户端(smtp_ params)。

您可以在这里参考完整的Postfix SMTP Client文档 。

关于你的configuration, smtp_tls_CAfile应该指向你信任的证书存储(用于validation远程服务器证书),而不应该是你的服务器的证书。 受信任的证书存储可能位于不同的位置/文件,具体取决于使用的发行版。

 smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt 

此外,我不会configuration任何客户端证书,除非远程服务器使用它来validation邮件提交。 所以会删除smtp_tls_key_filesmtp_tls_cert_file条目。 错误地configuration这可能会导致您无法发送邮件。

至less我会为服务器的TLS客户端configuration将是:

 smtp_tls_security_level = may smtp_tls_loglevel = 1 

为postfix SMTP客户端激活TLS(如果远程服务器支持, may会使用TLS, encrypt将强制执行)。

将loglevel设置为1,允许您通过生成日志条目来判断是否正在使用TLS:

 postfix/smtp[7867]: Trusted TLS connection established to someserver.domain.net[0.0.0.0]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 

不要忘记重新加载或重新启动postfix。