学习 postfix,我已经在我的服务器上设置了 SSL,并且一切正常。
Untrusted TLS connection established
在我下载 Equifax SSL CA 包并将其添加到我的 CA 包之前,Google/Gmail 一直提示此信息。现在trusted connection
,每当向 Google 发送电子邮件时,它都会提示此信息。
因此,我现在尝试对 Yahoo 和 Outlook365 连接执行相同操作。Untrusted TLS connection established
每当我向其发送电子邮件时,连接都会发出提示。
我这样做对吗?是下载 CA 软件包并将它们放入我的 CA 软件包中吗?我试过ssl_CA_path
把它们放进去,但那没用,只是smtp_tls_CAfile
看起来有用。
- Centos 6.7
- 后缀 3.2.2
答案1
每个 (主要的) Linux 发行版都附带来自所有通常受信任的主要机构的 CA 证书。
这是 CentOS 的默认位置:
smtpd_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
这应该默认使用,所以除非您只想信任自己的 CA,否则不需要此行。
CA 文件由软件包提供ca-certificates
。如果出于某种原因 CA 软件包不存在,您可以使用 进行安装yum install ca-certificates
。
答案2
我从如何解决 Debian 上 Postfix 中不受信任的服务器证书? 如果涉及 Lets Encrypt,答案会略有不同。
首先,确保您清楚 smtp_* 和 smtpd_* 参数。由于您关心邮件的发送,因此您应该担心 smtp_* 参数。 postfix/smtp 和 postfix/smtpd 有什么区别
对于我来说,这个设置适用于 Let's Encrypt 证书。许多论坛告诉我将全链引用为 smtp_tls_CAfile,但他们没有提到您还需要设置 smtp_tls_CApath 参数。在使用这四行代码使其工作后,我注释掉了 smtp_tls_CAfile,它只使用 smtp_tls_CApath 就可以工作
smtp_tls_cert_file=/etc/letsencrypt/live/example.com/cert.pem
smtp_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem
#smtp_tls_CAfile=/etc/letsencrypt/live/example.com/fullchain.pem #optional
smtp_tls_CApath = /etc/ssl/certs