相关疑难解决方法(0)

Ruby SSL错误 - sslv3警告意外消息

我正在尝试https://www.xpiron.com/schedule用ruby脚本连接到服务器.但是,当我尝试连接时:

require 'open-uri'
doc = open('https://www.xpiron.com/schedule')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A:  sslv3 alert unexpected message         
    from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `block in connect'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:87:in `timeout'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:678:in `connect'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:626:in `start'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:1168:in `request'
    from /usr/local/lib/ruby/1.9.1/net/http.rb:888:in `get'
    from (irb):32
    from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我正在运行Ruby 1.9.2p180.它似乎适用于其他一些机器,因此它可能是OpenSSL或Ruby的配置问题.我尝试重新安装所有SSL库,并从头开始重建Ruby,但似乎没有任何工作.有谁遇到过这个问题?

更新

在非工作机器上,openssl版本是 0.9.8o 01 Jun 2010

在工作机器上,它是 0.9.8k 25 Mar 2009

所以最近的一个似乎正在打破.

此外,如果我使用不同的HTTP客户端(Patron,基于libcurl),它可以工作:

require 'patron'

sess = Patron::Session.new
sess.timeout = 5
url …
Run Code Online (Sandbox Code Playgroud)

ruby openssl mechanize

5
推荐指数
1
解决办法
1万
查看次数

没有 ssl 验证和基本身份验证的 Rails http GET 请求

我正在尝试按照标题中的说明进行 http get 请求。我写的:

uri = URI.parse("https://myaddress.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
@data = http.get(uri.request_uri)
Run Code Online (Sandbox Code Playgroud)

请求被发送到我想要发送的地方,我收到一个未经授权的响应(正如预期的那样,因为我没有指定基本身份验证)。

我试过了

http.basic_auth 'user', 'pass'
Run Code Online (Sandbox Code Playgroud)

但是对于我的 http 变量的类型没有这样的方法。如何添加身份验证详细信息?

更新:我尝试在这里使用RUBY - SSL、Basic Auth 和 POST 之类的东西,但是在用 Get 替换 Post 之后,我无法使用“use_ssl”和“verify_mode”属性(我没有得到这样的属性错误)。

更新 2:我发现我可以在 Net::HTTP 对象上设置“use_ssl”属性,在 Net::HTTP::Get 对象上设置“basic_auth”。现在的问题是我怎样才能让它们一起工作?

ruby-on-rails basic-authentication

1
推荐指数
1
解决办法
981
查看次数