
我已經運行 postfixmail.myserver.com
超過 15 年了,成功地接收和發送郵件。使用 Let's Encrypt,所有憑證都完全有效。我可以驗證它們是否可以很好地用於openssl s_client -connect mail.myserver.com:25 -starttls smtp
驗證連接埠 465 上的 STARTTLS 和 SSL 的類似測試。
我說這一切都是為了證明這不是一個新的設置,除了這個單一的實例之外,一切似乎都設置正確並且運行順利。
有鑑於此,我發現自己無法接收來自特定供應商(我的健康提供者!)的電子郵件。查看後綴日誌,我看到如下行:
postfix/smtpd[2016]: connect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: SSL_accept error from mail1.static.mydoctor.com[xxx.xx.xx.xxx]: 0
postfix/smtpd[2016]: warning: TLS library problem: 2016:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
postfix/smtpd[2016]: lost connection after STARTTLS from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
postfix/smtpd[2016]: disconnect from mail1.static.mydoctor.com[xxx.xx.xx.xxx]
這告訴我mail1.static.mydoctor.com
郵件伺服器正在嘗試透過 STARTTLS 連接到我的伺服器,mail.myserver.com
但提供了錯誤的證書,因此我的後綴拒絕連線。如果我的解釋不正確,請告訴我!
我確實需要接收這些特定的電子郵件,即使寄件者做錯了。在這種情況下什麼樣的解決方法可能有效?有沒有辦法放鬆證書檢查以允許錯誤的證書?或者也許將該特定遠端伺服器列入白名單,以便接受它發送的任何內容?還有別的事嗎?
答案1
... sslv3 alert bad certificate:s3_pkt.c:1493:SSL alert number 42:
這告訴我,mail1.static.mydoctor.com 郵件伺服器正在嘗試透過 STARTTLS 連接到我的 mail.myserver.com,但提供了錯誤的證書,因此我的 postfix 拒絕了該連線。
這是錯誤的解釋。日誌中的「警報錯誤憑證」表示您的伺服器已從寄件者 MTA 收到此警報,因為寄件者 MTA 無法驗證您的憑證。即,這不是寄件者提供了錯誤的證書,而是您的伺服器提供了寄件者不接受的證書。
目前尚不清楚寄件者 MTA 無法驗證您的憑證的原因。這可能是您的設定問題或寄件者的設定問題。