SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv2 / v3读取服务器hello A.

时间:2010-08-17 20:39:34

标签: ruby ssl certificate openssl imap

我有一个使用IMAP& amp;连接到交换服务器的ruby客户端。 SSL。我使用Ruby Net :: IMAP库(它使用openssl)来连接。它已经好几个月了。交换服务器管理员从godaddy安装了新证书,现在我收到此错误:

 SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

有谁知道这个错误意味着什么? (我试过谷歌搜索)

我怀疑新证书存在问题导致此问题,但我不知道如何排除故障。

此外,我知道您可以通过执行以下操作来禁用证书验证:HTTP:

 http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl?

但我无法弄清楚如何使用NET:IMAP来做到这一点。我想禁用它以查看这是否是问题。

至于使用的代码: 我正在使用这个(或非常接近这个)http://github.com/look/fetcher/blob/master/lib/fetcher/imap.rb

我尝试过改为:      @connection = Net :: IMAP.new(@ server,@ port,@ sss,nil,false)

这是stacktrace

 checking emails on: Tue Aug 17 20:48:01 +0000 2010
 rake aborted!
 SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
 /usr/lib/ruby/1.8/net/imap.rb:904:in `connect'
 /usr/lib/ruby/1.8/net/imap.rb:904:in `initialize' 
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `new'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:34:in `establish_connection'
 /usr/lib/ruby/gems/1.8/gems/system_timer-1.0/lib/system_timer.rb:28:in `timeout_after'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/imap.rb:33:in `establish_connection'
 /u/apps/aras/releases/20100728212439/vendor/plugins/fetcher/lib/fetcher/base.rb:31:in `fetch'

3 个答案:

答案 0 :(得分:3)

我尝试使用默认设置连接到使用rails 3的dynamoDB时收到此错误。 解决方案是添加

config.port = 443

  

dynamo_db.rb

初​​始化

在撰写本文时,此修复程序位于gem的未分支分支中。

答案 1 :(得分:1)

事实证明,这个问题的根本原因是ms交换错误配置。我希望能够学到更多关于ssl错误以及如何解决它们的问题,但我并没有得到很多关于它的信息。

我确实尝试使用open ssl,fyi来解决这个问题,你可以这样做: OpenSSL的> s_client -connect myserver:993

当它被破坏时,我收到了这个错误: 连(00000003) 26831:错误:140790E5:SSL例程:SSL23_WRITE:ssl握手 失败:s23_lib.c:188:

一旦我们修好了,我就获得了证书和握手信息等。

以下是我的交换管理员所说的:“我刚刚进入IMAP协议并进入访问选项卡。然后是证书按钮。从那里我选择更换证书并选择新证书。”

答案 2 :(得分:0)

根据documentation,您可以在实例化Net:IMAP

时将SSL验证设置为无
foo = Net::IMAP.new(host, port, true, nil, false)

您还可以使用certs选项指向CA证书的本地副本。

注意:我自己没试过......