Ssl
STARTTLS 後失去連接:後綴
我已經設置了一個 Postfix + Courier 伺服器,並有一個使用 SMTP 伺服器設置配置的 Rails 應用程序。每當 Rails 應用程序嘗試發送電子郵件時,就會出現在 Postfix 日誌中(在 master.cf 中設置的附加日誌詳細程度)
Feb 22 03:57:24 alpha postfix/smtpd[1601]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits) Feb 22 03:57:24 alpha postfix/smtpd[1601]: smtp_get: EOF Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostname: localhost ~? 127.0.0.0/8 Feb 22 03:57:24 alpha postfix/smtpd[1601]: match_hostaddr: 127.0.0.1 ~? 127.0.0.0/8 Feb 22 03:57:24 alpha postfix/smtpd[1601]: lost connection after STARTTLS from localhost[127.0.0.1] Feb 22 03:57:24 alpha postfix/smtpd[1601]: disconnect from localhost[127.0.0.1] Feb 22 03:57:24 alpha postfix/smtpd[1601]: master_notify: status 1 Feb 22 03:57:24 alpha postfix/smtpd[1601]: connection closed
關於為什麼在身份驗證後失去連接的任何想法?
也許 Rails 應用程序不信任後綴證書?
ActionMailer 已更改為更安全的預設配置,並以 TLS 模式檢查伺服器證書(從版本 2 或 3 開始)。
一些解決方案是:
- 在應用程序中恢復舊的 Rails 行為:添加
openssl_verify_mode: 'none'
到 Rails 配置- 在伺服器上禁用 TLS:
smtpd_use_tls=no
在您的 Postfix 配置中設置- 在伺服器上設置有效的 TLS 證書,這些證書可以使用客戶端(Rails 應用程序)上的證書頒發機構進行驗證。如果它與本範例中的情況相同,這可能是矯枉過正,但對於這種配置,您需要確保 smtpd 沒有在公共埠上偵聽。