我有 Debian wheezy,并设置了 Exim 来监听端口 587,用户可以在此使用 TLS 进行身份验证。我正在使用 Thunderbird 31.1.2 进行测试。当我尝试发送消息时,Thunderbird 显示以下内容:
邮件发送失败。无法发送邮件,因为在交易过程中与 SMTP 服务器 smtp.gaspatchmodels.com 的连接丢失。请重试或联系您的网络管理员。
Exim 在主日志中显示了这一点:
2014-09-29 18:03:22 来自 ppp-94-68-63-22.home.otenet.gr ([192.168.1. 68]) [94.68.63.22] (gnutls_handshake) 的连接发生 TLS 错误:请求无效。
如果我嗅探流量,我会看到客户端说“STARTTLS”,服务器响应“220 TLS 继续”,然后客户端发送二进制数据,之后连接似乎被断开。
如果我运行exim
,-d
我会得到以下结果:
15332 SMTP<< STARTTLS
15332 initialising GnuTLS as a server
15332 GnuTLS global init required.
15332 initialising GnuTLS server session
15332 Expanding various TLS configuration options for session credentials.
15332 certificate file = /etc/exim4/exim.crt
15332 key file = /etc/exim4/exim.key
15332 TLS: cert/key registered
15332 verify certificates = /etc/ssl/certs/ca-certificates.crt size=245341
15332 Added 159 certificate authorities.
15332 Initialising GnuTLS server params.
15332 Loading default hard-coded DH params
15332 Loaded fixed standard D-H parameters
15332 GnuTLS using default session cipher/priority "NORMAL"
15332 host in tls_verify_hosts? no (option unset)
15332 host in tls_try_verify_hosts? no (option unset)
15332 TLS: a client certificate will not be requested.
15332 SMTP>> 220 TLS go ahead
15332 Received TLS SNI "[my domain name]" (unused for certificate selection)
15332 LOG: MAIN
15332 TLS error on connection from ppp-94-68-63-22.home.otenet.gr ([192.168.1.68]) [94.68.63.22] (gnutls_handshake): The request is invalid.
15332 TLS failed to start
对我来说,“请求无效”消息传达的意思就是 Thunderbird 有问题;但我不相信这是事实,因为它在我的 Thunderbird 和客户的 Thunderbird 上都无法正常工作,而且两天前它还正常工作(然后我从 squeeze 更新,删除了配置,并用 重新创建了它ansible
)。除了
MAIN_TLS_ENABLE = true
在/etc/exim4/conf.d/main/000_localmacros
。
我可以从 gnutls 获取更多调试信息吗?例如为什么它认为请求无效?
答案1
我找到了问题所在。我在配置中犯了一个错误:/etc/exim4/exim.crt
,不是包含主机证书+链证书,而是包含主机私钥+链证书。
我想知道这是否是一个exim
错误gnutls
。“请求无效”似乎不是此问题的合适错误消息。