我试图让我的电子邮件服务器来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_file和smtp_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。