Mailx SSL/TLS 握手失败:未知错误 -5938

Mailx SSL/TLS 握手失败:未知错误 -5938

我有 2 台 Linux CentOS 7 机器、一台 Samba 服务器和一台 Postfix 服务器。 Postfix 服务器配置为使用 SASL 身份验证和 TLS 加密。在 Samba 服务器上,我可以使用 openssl 连接到 Postfix 服务器。

[root@samba1 ~]# openssl s_client 
-connect mail.example.com:587 
-starttls smtp 
-CAfile /etc/pki/tls/mail.example.com.pem

当我在 Samba 服务器上使用 mailx 时,我收到消息“SSL/TLS 握手失败:未知错误 -5938”。

[root@samba1 ~]@ echo "Hello World" | mailx -v -s "Test" -A default [email protected]
Resolving host mail.example.com . . . done.
Connecting to 192.168.0.10:587 . . . connected.
SSL/TLS handshake failed: Unknown error -5938.

在 Postfix 服务器上的 /var/log/maillog 中,我确实看到了一些 TLS 事件。

Nov 25 19:23:05 mail postfix/smtpd[5659]: initializing the server-side TLS engine
Nov 25 19:23:05 mail postfix/smtpd[5659]: connect from samba1.example.com[192.168.0.12]
Nov 25 19:28:05 mail postfix/smtpd[5659]: timeout after UNKNOWN from samba1.example.com[192.168.0.12]

这是我在 Samba 服务器上的 /etc/mail.rc 文件。

[root@samba1 ~]# cat /etc/mail.rc
account default {
set smtp=smtps://mail.example.com:587

#Authentication
set smtp-auth=login
set [email protected]
set smtp-auth-password="my_password"

#Encryption
set smtp-use-starttls
set nss-config-dir=/etc/pki/nssdb
}

set hold
set append
set ask
set crt
set dot
set keep
set emptybox
set indentprefix="> "
set quote
set sendcharsets=iso-8859-1,utf-8
set showname
set showto
set newmail=nopoll
set autocollapse
set markanswered
ignore received in-reply-to message-id references
ignore mime-version content-transfer-encoding
fwdretain subject date from to
set bsdcompat

本文建议注释掉 smtp-use-starttls,这似乎不适用于我的情况,因为我的 Postfix 服务器配置为使用 TLS。如果我注释掉 smtp-use-starttls,我仍然会收到 5938 消息。

这个帖子建议您确保两台服务器使用相同版本的 TLS。我将 ssl-method=tls1 添加到 Samba 服务器上的 /etc/mail.rc 中,但仍然收到 5938 消息。

使用证书工具,我确实在 Samba 服务器上的 /etc/pki/nssdb 中看到了我的证书,并且它是有效的。

[root@samba1 ~]# certutil -V -n "mail.example.com.crt" -d /etc/pki/nssdb -u A
certutil: certificate is valid

这是nssdb的内容

-rw-r--r--. 1 root root 65536 Nov 25 17:56 cert8.db
-rw-r--r--. 1 root root  9216 Jun 26 08:51 cert9.db
-rw-r--r--. 1 root root 16384 Nov 25 17:56 key3.db
-rw-r--r--. 1 root root 11264 Jun 26 08:51 key4.db
-rw-r--r--. 1 root root   451 Apr 25  2016 pkcs11.txt
-rw-r--r--. 1 root root 16384 Apr 25  2016 secmod.db

我不确定接下来应该针对这种异常做什么。

答案1

戴夫·汤普森_085 评论里回答了

smtps:表示最初使用SSL/TLS连接,587不支持。您想要连接然后启动 SSL/TLS,这通常称为 starttls。

使用:

smtp=server:587

smtp-use-starttls

相关内容