为什么我尝试通过 msmtp 发送邮件时会出现 TLS 验证失败?

为什么我尝试通过 msmtp 发送邮件时会出现 TLS 验证失败?

我正在尝试通过 smtp(使用 msmtp)发送邮件。目的是通过雅虎邮件帐户发送。我已经正确配置了它(见底部),这样如果我使用选项运行--tls-certcheck=off,所有内容都会通过我的帐户发送。然而,这并不安全。当我删除此标志时,根据作为信任文件值传递的内容,我得到

msmtp:TLS 证书验证失败:该证书不受信任。证书颁发者未知。

或者

msmtp:无法为 TLS 会话设置 X509 信任文件 /root/yahoo.crt:读取文件时出错。

第一种情况发生在证书位于 /etc/ssl/certs 中时,第二种情况发生在证书位于 /root 中时——尽管它们是同一个文件。从 yahoo.com 导出证书链后,我不得不删除 ^M 字符。当我尝试使用它时,我遇到了这些问题?证书文件名重要吗?我也更新了 ca-certificates(不确定这是否正确)?看来根证书是DigiCert SHA2 High Assurance Server CA,据我所知,它没有安装?我认为这是正确的 x509 格式。请问下一步是什么...

msmtp 的配置:(注意:我在两个位置安装文件后,还将信任文件设置为 /root/yahoo.crt 和 /etc/ssl/certs/yahoo.crt)

# Set default values for all following accounts.
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt  
logfile        ~/.msmtp.log
#tls_certcheck off

account        yahoo
host           smtp.mail.yahoo.com
port           465
tls_starttls   off
from           <username>@yahoo.<tld>
user           <username>
password       <password>


account default: yahoo

相关内容