我試圖在ruby腳本中連接到服務器https://www.xpiron.com/schedule
。然而,當我嘗試連接:Ruby SSL錯誤 - sslv3警報意外消息
require 'open-uri'
doc = open('https://www.xpiron.com/schedule')
我收到以下錯誤信息:
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>'
我跑紅寶石1.9.2p180。它似乎在其他一些機器上工作,所以它可能是OpenSSL或Ruby的配置問題。我嘗試重新安裝所有的SSL庫,並從頭開始重建Ruby,但似乎沒有任何工作。有沒有人遇到過這個問題?
更新
在非工作機,OpenSSL的版本是0.9.8o 01 Jun 2010
在工作機器,它是0.9.8k 25 Mar 2009
所以更近的一個似乎是打破。
而且,如果我使用不同的HTTP客戶端(贊助人的基礎上,libcurl的),它的工作原理:
require 'patron'
sess = Patron::Session.new
sess.timeout = 5
url = 'https://www.xpiron.com/schedule'
resp = sess.get(url)
puts "#{resp.body}"
因此,這似乎是Ruby的OpenSSL的綁定問題。
這是什麼'紅寶石-ropenssl -e「提出的OpenSSL :: OPENSSL_VERSION''在機器上說它不工作,它在那些工作上是什麼? – emboss
Working:'OpenSSL 0.9.8k 2009年3月25日' 不工作:'OpenSSL 0.9.8o 2010年6月1日' 似乎有點不同,在更新的版本。 – marketer