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>'
私はRubyの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
作業中: 'OpenSSL 0.9.8k 25 Mar 2009' 'OpenSSL 0.9.8o 01 Jun 2010' 最近のバージョンでは何かのようなものがあります。 – marketer