我被分配了一项任务,为客户创建一个邮件服务器,该服务器将用于向某家公司发送邮件。条件是它需要使用受信任的 TLS 连接。无论我做什么,我都无法让它工作,当我测试在 gmail 或 Microsoft Outlook 上发送邮件时,它总是不受信任的。
在我main.cf
我尝试过:
- 添加:
smtp_tls_loglevel = 2
- 添加:
smtp_tls_CApath=/etc/letsencrypt/live/mydomainhere/fullchain.pem
- 添加:
smtpd_tls_CApath=/etc/letsencrypt/live/mydomainhere/fullchain.pem
- 改变:
smtpd_tls_security_level = encrypt
但我在 roundcube 中得到的只是“必须先发出 STARTTLS 命令”,而在 maillog 中没有任何有用的信息,至少据我所知。我在 Google 上搜索了 3 天,无论我做什么,我都无法建立受信任的 TLS 连接。
有人有什么想法吗?我可以提供更多详细信息。
答案1
以下是我的 postfix 配置文件的摘录:/etc/postfix/main.cf
smtpd_tls_cert_file = /etc/letsencrypt/live/mailserver.domain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mailserver.domain.com/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mailserver.domain.com/fullchain.pem
smtp_tls_CAfile = /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
smtp_tls_CApath = /etc/pki/ca-trust/extracted/openssl
smtpd_tls_CApath = /etc/pki/ca-trust/extracted/openssl
我认为这就是你的目标:
Mar 12 15:34:36 mailserver postfix/smtp[61895]: Trusted TLS connection established to smtp.sendgrid.net[159.122.219.55]:587: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
确保安装名为 ca-certificates 的 Linux 软件包(我使用的是 CentOS,因此可以通过以下方式实现yum -y install ca-certificates
)
我的配置中的路径适用于 CentOS-7.x