代码之家  ›  专栏  ›  技术社区  ›  Joelio

SSL\u connect SYSCALL returned=5 errno=0 state=SSLv2/v3读取服务器hello A

  •  11
  • Joelio  · 技术社区  · 14 年前

    我有一个使用IMAP&连接到exchange服务器的ruby客户机;SSL。我使用Ruby Net::IMAP库(在封面下使用openssl)进行连接。它几个月来一直运转良好。exchange server管理员从godaddy安装了新的证书,现在出现以下错误:

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

    有人知道这个错误是什么意思吗?(我试着用谷歌搜索)

    我怀疑是新证书的问题导致了这种情况,但我不知道如何解决它。

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

    但我不知道怎么用NET:IMAP. 我想禁用它,看看这是否是问题所在。

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

    我试着换成: @连接=网络:IMAP.新(@server,@port,@ssl,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'
    
    3 回复  |  直到 14 年前
        1
  •  3
  •   genkilabs    12 年前

    我在尝试使用默认设置通过Rails3连接到dynamoDB时收到了这个错误。

    config.port = 443
    

    发电机_数据库.rb

    在撰写本文时,此修复位于gem的一个未合并分支中。

        2
  •  1
  •   Joelio    14 年前

    嗯,原来这一次的根本原因是ms exchange配置错误。我很想了解更多关于ssl错误以及如何解决它们的知识,但是我没有得到太多关于这个的信息。

    我确实尝试过用开放ssl来解决这个问题,仅供参考,你可以: OpenSSL>s\客户端-连接我的服务器:993

    当它坏了,我收到了这个错误: 26831:error:140790E5:SSLroutines:SSL23_WRITE:ssl握手 故障:s23泷lib.c:188:

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

    下面是我的exchange管理员所说的:“我只是转到IMAP协议,然后转到access选项卡。然后单击证书按钮。从那里我选择了替换证书,并选择了新的证书。”

        3
  •  0
  •   Brian    14 年前

    documentation ,可以在实例化时将SSL验证设置为“无”网络:IMAP

    foo = Net::IMAP.new(host, port, true, nil, false)
    

    您还可以使用 certs

    注意:我自己没有试过这个。。。