我Postfix
与 Lets Encrypt 结合使用来传输 TLS 加密电子邮件。
以下参数/etc/postfix/main.cf
是相关的:
smtp_tls_key_file = /etc/letsencrypt/live/foo.bar/privkey.pem
smtp_tls_cert_file = /etc/letsencrypt/live/foo.bar/fullchain.pem
smtp_tls_CAfile = /etc/letsencrypt/live/foo.bar/fullchain.pem
我可以毫无问题地发送电子邮件,但我收到警告消息,Postfix 无法验证接收站点的证书:
postfix/smtp[10736]: Untrusted TLS connection established to example.com[xxx.xxx.xxx.xxx]:25: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)
我怀疑这是因为 Postfix 无法使用此参数访问其证书存储:
smtp_tls_CAfile = /etc/letsencrypt/live/foo.bar/fullchain.pem
更改smtp_tls_CAfile = /etc/ssl/certs
将会破坏我的整个 TLS 配置。
我必须进行什么配置才能使 Postfix 能够通过 Lets Encrypt 发送加密消息并检查收件人端的证书?
答案1
已解决。问题是丢失的我的系统上有 CA 证书。因此 Postfix 无法验证客户端的发行者。
通过安装解决
sudo apt install ca-certificates -y
然后将 Postfix 指向新安装的 CA 证书:
sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
sudo postfix reload
结果:
tail -f /var/log/mail.log
postfix/smtp[11023]: Trusted TLS connection established to ...
答案2
这解决了我在 RHEL 8.7 的 Postfix 中遇到的问题
我在 gmail.com、hotmail.com、outlook.com 连接上看到此错误,因为不受信任的 TLS。
首先,我确保已安装 ca 证书,我输入:sudo yum install ca-certificates 一旦它说它已经安装,我编辑了 main.cf sudo nano /etc/postfix/main.cf 搜索 smtp_TLS_CA 行,用 # 注释掉我的旧行并做一个记录以防我需要撤消它,然后添加了一个新行:smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt 保存的文件重新启动了 postfix 服务。systemctl restart postfix 检查错误:systemctl status postfix 然后向 gmail.com 用户发送了一封测试电子邮件,并确保日志显示它是一个受信任的 TLS 连接。修复了!