Postfix

Mailx SSL/TLS 握手失敗:未知錯誤 -5938

  • January 4, 2017

我有 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 first.last@hotmail.com
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 smtp-auth-user=my.email@example.com
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 消息。

使用certutil,我確實在 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

我不確定接下來我應該為這個異常做些什麼。

dave_thompson_085 在評論中回答

smtps:表示初始連接SSL/TLS,587不支持。您想要連接然後啟動 SSL/TLS,通常稱為 starttls。

採用:

smtp=server:587

smtp-use-starttls

引用自:https://unix.stackexchange.com/questions/326118