STARTTLS 后丢失连接:Postfix

STARTTLS 后丢失连接:Postfix

我已经设置了 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

关于为什么身份验证后会丢失连接,您有什么想法吗?

答案1

也许 rails 应用程序不信任 postfix 证书?

答案2

ActionMailer 已更改为更安全的默认配置,并以 TLS 模式检查服务器证书(自版本 2 或 3 起)。

一些解决方案如下:

  • 在应用程序中恢复旧的 Rails 行为:添加openssl_verify_mode: 'none'到 Rails 配置中
  • 在服务器上禁用 TLS:smtpd_use_tls=no在 Postfix 配置中设置
  • 在服务器上设置有效的 TLS 证书,这些证书可通过客户端(Rails 应用程序)上的证书颁发机构进行验证。如果服务器与本例中的情况相同,那么这可能有点过头了,但对于这种配置,您需要确保 smtpd 未在公共端口上监听。

相关内容