0

所以我用cyberpanel在我的VPS上设置了一个邮件服务器,我可以通过rainloop手动发送电子邮件。我还有一个基于 Rust 的 lettre crate 的程序,它在我自己的设备上运行得非常好,并通过代码正确地发送电子邮件。但是,当我尝试在我的 VPS 上运行该程序时,我在我的系统日志中收到以下消息。

globalfun postfix/smtps/smtpd[24656]: connect from localhost[::1]
globalfun postfix/smtps/smtpd[24656]: SSL_accept error from localhost[::1]: -1
globalfun postfix/smtps/smtpd[24656]: warning TLS library problem: error 14094418:SSL routines:ssl3_resl3_read_bytes: tlsv1 alert unknown ca:../ssl/rec/layer_s3.c:1543:SSL alert number 48:
globalfun postfix/smtps/smtpd[24656]: lost connection after CONNECT from localhost[::1]
globalfun postfix/smtps/smtpd[24656]: disconnect from localhost[::1] commands=0/0

我真的不明白为什么我不能通过我的程序发送电子邮件,但这似乎与 SSL 有关。作为参考,我在同一个域上有两台服务器——一台用于我的网站,它通过 Let's Encrypt 安装了 SSL,另一台用于没有 SSL 的邮件服务器。也就是说,我认为这不是问题,因为我可以完全手动通过邮件服务器发送电子邮件。有人对出了什么问题有任何想法吗?提前致谢。

4

1 回答 1

0

globalfun postfix/smtps/smtpd[24656]:警告 TLS 库问题:错误 14094418:SSL 例程:ssl3_resl3_read_bytes:tlsv1 警报未知 ca:../ssl/rec/layer_s3.c:1543:SSL 警报编号 48:

您的客户端拒绝连接到您的邮件服务器,因为它不信任颁发邮件服务器证书的 CA。它通过发送unknown caTLS 警报通知服务器有关此问题。

这可能有多种原因。通常,要么使用客户端不信任的 CA,需要在客户端(信任此 CA)或服务器(使用客户端信任的 CA 的证书)进行修复。或者根 CA 实际上是受信任的,但服务器没有将客户端构建信任链所需的中间证书发送到这个受信任的根 CA。这需要在服务器上修复。

于 2021-08-07T06:55:18.983 回答