【问题标题】:OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello AOpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A
【发布时间】:2014-07-16 15:29:28
【问题描述】:

我有两台服务器,每台都运行一个 Rails 应用程序 (MyApp)。其中一台服务器设法获取 wsdl,而另一台则没有。我不知道如何处理我的错误消息。任何人都可以建议尝试更改吗?

我已经对比过两台机器上的 /etc/ssl/certs 的内容,看起来是一样的。

在两台机器上,SSL 握手使用 openssl s_client -connect ws2.agencyworks.com:443 -ssl3 成功,但在未指定 -ssl3 时在服务器 2 上失败。 (替代-ssl3-tls1 在两台机器上都成功。)

有没有办法为 openssl 指定默认的 ssl 版本?

一个准系统示例(Ruby 1.8.7):

http = Net::HTTP.new 'ws2.agencyworks.com', 443
http.use_ssl = true
http.get '/EServices/services/StatusSession/wsdl/StatusSession.wsdl'

# Server 1 returns => #<Net::HTTPOK 200 OK readbody=true>
# Server 2 errors out: OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

有没有办法在 Ruby 1.8 的 net/http 中指定 ssl 版本? (我还没有找到。)

【问题讨论】:

    标签: ruby ssl openssl ruby-on-rails-2


    【解决方案1】:

    这并没有回答为 openssl 设置默认 ssl 版本的问题,无论是在系统级别还是 Rails 级别,但您可以做一些事情......

    在 Ruby 1.8 中,OpenSSL::SSL::SSLContext 的实例是 net/http 对象用来保存 openssl 参数的对象,但 net/http 不能让您直接访问此实例变量,并且它不提供 @987654322 的访问器@,所以没有明显的解决方案。然而,即使在 Ruby 1.8 中,您也可以设置 ssl_version,但有以下稍微麻烦的解决方案:

    Net::HTTP.ssl_context_accessor 'ssl_version'    # create accessors for ssl_version
    http = Net::HTTP.new 'ws2.agencyworks.com', 443 # build http object
    http.ssl_version = :TLSv1                       # set ssl_version
    http.use_ssl = true
    http.get '/EServices/services/StatusSession/wsdl/StatusSession.wsdl'
    

    上面的第一行允许您在 Net::HTTP 实例使用的 OpenSSL::SSL::SSLContext 实例上设置 ssl_version。

    附加信息

    没有应用程序范围的解决方案。最好您可以使用OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = :TLSv1 为整个应用程序设置此设置,但事实证明DEFAULT_PARAMS 仅在以下情况下应用 set_paramsSSLContext 实例上被调用,而 net/http 不这样做(至少在 Ruby 1.8 中)。所以这个应用范围的解决方案是行不通的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 2017-06-03
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多