首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openssl更新1.0.1f到1.0.1g中断发送邮件(SSL23_GET_SERVER_HELLO:tlsv1警报解码错误)

openssl更新1.0.1f到1.0.1g中断发送邮件(SSL23_GET_SERVER_HELLO:tlsv1警报解码错误)
EN

Server Fault用户
提问于 2014-04-10 15:24:38
回答 2查看 5.7K关注 0票数 0

两天前,我将openssl 1.0.1f更新为1.0.1g。一切看起来都很好。但是过了一段时间,sendmail日志中出现了一个错误:

OpenSSL 1.0.1g失败

邮件发送:17568:STARTTLS=client,错误:连接失败=-1,reason=tlsv1警报解码错误,SSL_error=1,errno=0,retry=-1 4月1日10:13:45邮件发送邮件17568:STARTTLS=client: 17568: error :1407741A:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报解码error:s23_clnt.c:762: Apr 10:13:45 mail sendmail17568:ruleset=tls_server,arg1=SOFTWARE,relay=mail.example.com,reject=403 4.7.0 TLS握手失败。

邮件还没送来。

OpenSSL 1.0.1f works

然后,我将邮件降级到1.0.1f,并发送了以下邮件:

10:17:31 31809:STARTTLS=client,relay=mail.example.com.,version=TLSv1 1/SSLv3 3,verify=FAIL,密码=DHE-RSA256-SHA,bits=256/256

两个openssl版本之间似乎还有另外一个不同之处,而不仅仅是心血来潮的错误修复。

版本比较

然后,我尝试了这两个OpenSSL版本:

openssl s_client -starttls smtp -connect mail.example.com:25

输出的OpenSSL版本1.0.1g:

连接(00000003)140370040759952:错误:1407741A:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1警报解码error:s23_clnt.c:762:

没有同侪证书

没有发送客户端证书CA名称

SSL握手已读取131字节,写入了552字节。

新的,(无),密码是(无)安全的重新协商不支持压缩:无扩展:无

输出的OpenSSL版本1.0.1f (部件):

连接(00000003) depth=0 C= US,ST =加利福尼亚,L= San Bruno,O= "IronPort Systems,Inc.",CN = IronPort Appliance证书验证error:num=20:unable以获得本地颁发者证书验证返回:1 depth=0 C= US,ST =加利福尼亚,L= San Bruno,O= "IronPort Systems,Inc.",CN = IronPort Appliance error:num=21:unable,以验证第一份证书验证返回:1

证书链0 S:/C=US/ST=加利福尼亚/L=San Bruno/O=IronPort系统公司/CN=铁港电器演示证书I:/C=US/ST=加利福尼亚/San=San Bruno/O=IronPort Systems,Inc./CN=IronPort Appliance证书

服务器证书--剪短--

没有发送客户端证书CA名称

SSL握手已读取1771字节,写入了552字节。

新的,TLSv1 1/SSLv3 3,密码是DHE-RSA-美学256-SHA服务器公钥是1024位安全重新协商是支持压缩:无扩展:无SSL-会话:协议:TLSv1密码:DHE-rSA256-SHA-

现在怎么了?

我的解释是,mail.example.com提供的证书不是用于生产用途的.

有办法用OpenSSL1.0.1g处理这样的证书吗?mail.example.com是我遇到问题的几个通信伙伴之一。

谢谢泰迪

EN

回答 2

Server Fault用户

回答已采纳

发布于 2014-04-11 02:56:24

环境迫使我从源代码编译openssl 1.0.1g,并且遇到了与上面报告的行为相同的行为。这是在费多拉18下的64位英特尔。与最初的海报报告一样,大多数邮件发送正常,但有一个邮件目的地遭遇了相同的TLS握手失败。

openssl更改日志(简要的CL 这里,详细的CL 这里)只显示了从1.0.1f到1.0.1g的三个变化:

  • 安全更新
  • 另一次安全更新
  • 为损坏的服务器添加TLS填充扩展解决方案。

我推测第三个变化是造成这个问题的原因,我在ssl/tls1.h中注释了一行,它似乎控制了这种"TLS填充“修改的存在,如下所示:

/* #define TLSEXT_TYPE_padding 21 */

再次编译,将库.so文件放在适当的位置,重新启动sendmail,然后排队的邮件就没有问题了。我希望我没有因此而打开新的问题。

票数 2
EN

Server Fault用户

发布于 2014-04-12 09:46:12

是的,有两个解决办法:

  • 使用SSLv3
  • 不使用/* #定义TLSEXT_TYPE_padding 21 */

参考这里

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/588125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档