当我通过使用 AWS SES 作为邮件中继的邮件服务器从我的客户端发送邮件时,我会在每封邮件经过时在 Postfix 日志中看到此信息:
smtp: Untrusted TLS connection established to email-smtp.us-west-1.amazonaws.com[13.57.144.53]:587: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
smtp: D34E420866249C: to=<[email protected]>, relay=email-smtp.us-west-1.amazonaws.com[13.57.144.53]:587, delay=0.81, delays=0/0.11/0.52/0.17, dsn=2.0.0, status=sent (250 Ok 0111017774953167-f6df400f-aa87-43ab-8ca6-6c5534c50e17-000000)
如果连接“不受信任”,但 SES 出于安全考虑需要 TLS(虽然设置可能不正确),那么为什么仍会发送消息。
事情正在进展......我只是对它们的进展感到惊讶。
我关注了 AWS 的带有 Postfix 的 SES文档。我的设置的主要区别在于,我无法使用smtp_tls_security_level = encrypt
,正如建议的那样,因为它会阻止入站smtpd
交易。将其重新设置为smtp_tls_security_level = may
可让邮件通过,但日志显示 smtp 是“不受信任的”,即使连接似乎成功了?!?不确定这些是否相关,但这就是我得到的全部信息。
我可以修复/改进什么吗?
答案1
在 TLS 中,“不受信任”一词与“未加密”不同。从日志中后续的密码和密钥强度可以看出,通信是加密的。
在 TLS 中,信任与如何验证所使用的证书是否确实属于出示证书的实体有关。
如果您不验证证书或验证失败(如果您愿意),您仍然可以使用证书。
————————
Postfix TLS 手册:http://www.postfix.org/TLS_README.html摘录:
要验证远程 SMTP 客户端证书,Postfix SMTP 服务器需要信任颁发证书的机构的证书。这些“PEM”格式的证书可以存储在单个 $
smtpd_tls_CAfile
或多个文件中,$ 目录中每个文件一个 CA。smtpd_tls_CApath
如果您使用目录,请不要忘记使用以下命令创建必要的“哈希”链接:
# $OPENSSL_HOME/bin/c_rehash /path/to/directory
$smtpd_tls_CAfile 包含一个或多个受信任 CA 的 CA 证书。该文件在 Postfix 进入可选的 chroot jail 之前打开(具有 root 权限),因此无需从 chroot jail 内部访问。
可以通过 $smtpd_tls_CApath 目录指定其他受信任的 CA