最近,我在 Kubuntu 14.04 系统上安装了更新后,新版本的雷鸟已安装,我无法再发送电子邮件. 提示:
发送消息失败。无法发送消息,因为在交易过程中与 SMTP 服务器 [..] 的连接丢失。请重试或联系您的网络管理员。
由于我是邮件服务器 (exim) 的管理员,因此我检查了日志。每次我尝试使用 thunberbird 发送电子邮件时,它都会显示:
来自 [...] 的连接发生 TLS 错误 (gnutls_handshake):无法协商支持的密码套件。
这很奇怪。怎么会突然发生这种情况?我在 Google 上搜索了这个问题,但日志中出现此消息的其他人的证书安装有问题(算法太新或类似情况)。但我没有对我的证书进行任何更改,而且从我的 Android 手机(具有相同的 TLS 设置)使用 K-9 Mail 发送邮件仍然没有问题。
我的服务器运行Debian 7.6和进出口 4.80。
(以防万一:我的证书是由 CACert 签名的)。
现在我降级了 thunderbird ( sudo apt-get install thunderbird=1:24.4.0+build1-0ubuntu1
)。这有效,但当然不是永久的解决方案。
哪里出了问题?我该如何修复?
答案1
Firefox 和 Thunderbird 31 不再支持弱密码套件,因此您会收到此错误。
您需要根据此更新服务器的 SSL 配置Mozilla 维基文章。
推荐的向后兼容密码套件字符串的引用:
- 密码套件:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDH E-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK
- 版本:SSLv3、TLSv1、TLSv1.1、TLSv1.2
- RSA 密钥大小:2048
- DH参数大小:1024
- 椭圆曲线:secp256r1、secp384r1、secp521r1
您应该能够使用tls_require_ciphers
指令指定密码。它应该接受上面的密码套件字符串。
答案2
正如你在这里读到的http://kb.mozillazine.org/Security.tls.version.*,设置为 2 或 3 的 ThunderbirdSecurity.tls.version.max
将不会回退到较低的设置。
即使您按照tls_require_ciphers
上述方法配置 Exim 4.80,它也不会首先提供 ECDHE(至少这是我在某处读到的,所以请谨慎相信)。也许这也是证书问题,使用不同的设置更新证书也可能会有所帮助。
因此,要使 Thunderbird 的行为与以前一样,请转到配置编辑器(首选项 -> 高级 -> 配置编辑器(按钮))并搜索,tls
然后更改security.tls.version.max
为 1,它应该可以再次工作。
答案3
我不知道问题出在哪里,但肯定与我的证书有关。我刚刚重新生成了证书,再次使用CACert 的 CSR 脚本据我所知,我所做的与上次生成证书时没有什么不同。但使用新证书后,一切又恢复正常。