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

Joe*_*lio 11 ruby ssl openssl imap certificate

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

 SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
Run Code Online (Sandbox Code Playgroud)

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

我怀疑新证书存在问题导致此问题,但我不知道如何解决它.

另外我知道你可以在使用NET:HTTP时禁用证书验证:

 http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl?
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何使用NET:IMAP.我想禁用它以查看这是否是问题.

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

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

这是堆栈跟踪

 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'
Run Code Online (Sandbox Code Playgroud)

Joe*_*lio 1

事实证明,这个问题的根本原因是 ms Exchange 配置错误。我很想了解更多有关 ssl 错误以及如何解决它们的信息,但我没有得到太多这方面的信息。

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

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

一旦我们修复了,我就收到了证书和握手消息等。

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