2015-10-22 11 views
5

Ben de buna benzer bir çok soruyu yığın taşması üzerine inceledim ve ruby ​​tanrılarına sordum şimdi yardım et.SSL_connect SYSCALL döndürdü = 5 errno = 0 durum = SSLv3 sunucu oku merhaba A (OpenSSL :: SSL :: SSLError)

im yakut aracılığıyla bir HTTP isteğinde bulunurken bu yığın izleme alma:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A (OpenSSL::SSL::SSLError) 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:918:in `block in connect' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:66:in `timeout' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:918:in `connect' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:862:in `do_start' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:851:in `start' 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1367:in `request' 

Bazı şeyleri not etmek:

Zaten http nesne üzerinde bu özellikleri ayarlama denedim:

http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 
http.ssl_version = :TLSv1 
http.ciphers = ['RC4-SHA'] 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

Zaten

require 'openssl' 
    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE 
ayarlamayı denedim

Son olarak, bu hata sadece makinelerimden birinde gerçekleşir. Benim tahminim farklı bir sürümü olan openssl veya mümkün olan bazı mücevher var benim farklı bir sürümü var. Hem Burada

10.10.5 nasıl çalışır makine için ortamıdır Mac OSX Yosemite şunlardır: Burada

*** LOCAL GEMS *** activesupport (4.2.4, 3.2.22) addressable (2.3.8) autoparse (0.3.3) bigdecimal (1.2.4) bluecloth (2.2.0) builder (3.2.2) bundler (1.6.2) bundler-unload (1.0.2) curb (0.8.8) executable-hooks (1.3.2) extlib (0.9.16) faraday (0.9.2) gem-wrappers (1.2.4) google-api-client (0.8.4) google_drive (1.0.1) googleauth (0.4.2) hurley (0.2) i18n (0.7.0) io-console (0.4.2) jenkins_api_client (1.4.1) json (1.8.1) jwt (1.5.1) launchy (2.4.3) little-plugger (1.1.4) logging (2.0.0) macaddr (1.7.1) maruku (0.7.2) memoist (0.12.0) mime-types (2.3) mini_magick (4.2.7) mini_portile (0.7.0.rc4) minitest (5.8.1, 4.7.5) mixlib-shellout (2.2.1) multi_json (1.11.2) multi_xml (0.5.5) multipart-post (2.0.0) netrc (0.7.7) nokogiri (1.6.7.rc3) oauth (0.4.7) oauth2 (1.0.0) plist (3.1.0) polyglot (0.3.5) psych (2.0.5) rack (1.6.4) rake (10.3.2, 10.1.0) rdoc (4.1.0) representable (2.3.0) rest-client (1.7.2) retriable (2.1.0, 1.4.1) rubygems-bundler (1.4.4) rvm (1.11.3.9) signet (0.6.1) sqlite3 (1.3.9) systemu (2.6.4) terminal-table (1.5.2) test-unit (2.1.2.0) thor (0.19.1) thread_safe (0.3.5) treetop (1.5.3) tzinfo (1.2.2) uber (0.0.15) unicode (0.4.4.1) uuid (2.3.7) here is my version of openssl: OpenSSL 0.9.8zg 14 July 2015 

doesnt makine için benim ortamıdır iş:

*** LOCAL GEMS *** 

activesupport (3.2.22) 
addressable (2.3.8) 
autoparse (0.3.3) 
bigdecimal (1.2.0) 
bluecloth (2.2.0) 
builder (3.2.2) 
CFPropertyList (2.2.8) 
curb (0.8.8) 
extlib (0.9.16) 
faraday (0.9.2) 
google-api-client (0.8.4) 
google_drive (1.0.1) 
googleauth (0.4.2) 
i18n (0.7.0) 
io-console (0.4.2) 
jenkins_api_client (1.4.1) 
json (1.8.1, 1.7.7) 
jwt (1.5.1) 
launchy (2.4.3) 
libxml-ruby (2.6.0) 
little-plugger (1.1.4) 
logging (2.0.0) 
macaddr (1.7.1) 
maruku (0.7.2) 
memoist (0.12.0) 
mime-types (2.3) 
mini_portile (0.6.2) 
minitest (5.8.1, 4.3.2) 
mixlib-shellout (2.2.2) 
multi_json (1.11.2) 
multi_xml (0.5.5) 
multipart-post (2.0.0) 
netrc (0.7.7) 
nokogiri (1.6.6.2, 1.5.6) 
oauth (0.4.7) 
oauth2 (1.0.0) 
plist (3.1.0) 
polyglot (0.3.5) 
psych (2.0.0) 
rack (1.6.4) 
rake (10.3.2, 0.9.6) 
rdoc (4.0.0) 
rest-client (1.7.2) 
retriable (1.4.1) 
signet (0.6.1) 
sqlite3 (1.3.9, 1.3.7) 
systemu (2.6.4) 
terminal-table (1.5.2) 
test-unit (2.0.0.0) 
thor (0.19.1) 
thread_safe (0.3.5) 
treetop (1.5.3) 
tzinfo (1.2.2) 
unicode (0.4.4.1) 
uuid (2.3.7) 

here is my version of openssl: (I tried upgrading to latest, that didnt work either) 

OpenSSL 1.0.1g 7 Apr 2014 
+1

kullanarak benim için zaman aşımı ayarını yapmak için deneyebilirsiniz, 'OpenSSL :: SSL :: VERIFY_PEER' bir sabittir ve bu nedenle tahsis edilemez. Bunun yerine, denemeye değer bir seçenek, 'Net :: HTTP.new' –

+0

'u izleyen satırlarda' http.verify_mode = OpenSSL :: SSL :: VERIFY_NONE' aslında bunu denedim. sorumu güncellememe izin ver. – Rafthecalf

cevap

0

Sorun çözüldü. Daha eski bir ruby ​​versiyonu (2.0.0) aldım ve 2.1.2'ye yükselttim ve sihir gibi çalışıyor. Ruby 2.0.0'ın ne yaptığını bilmiyor, openssl bu hatayı atıyor. Bence çok işe yaramaz hata mesajı.

0

OpenSSL 0.9.8zg 14 Temmuz 2015

OpenSSL sürümündeki son tarihe kadar aldatmanıza izin vermeyin. Mac, TLSS 1.1 ve TLS 1.2 yapamayan ve daha yeni şifrelere destek vermeyen, OpenSSL'nin çürümüş eski bir sürümüyle birlikte gelir, ancak bu eski sürümde güvenlik düzeltmeleri uygular. Sorunuzun, sorunu yeniden üretme konusundaki ayrıntıları eksik olduğu düşünülürse, tahminimce sunucu sadece yeni bir TLS sürümü veya yeni şifrelerin bir kısmını beklemektedir. Genel bir https sunucusunun davranışını, sunucu tarafından desteklenen SSL protokolü sürümlerini ve şifrelerini de gösteren SSLLabs adresinden denetleyebilirsiniz. Ayrıca, kullandığınız OpenSSL sürüm 0.9.8 de dahil olmak üzere çeşitli istemcilerde sorunların beklenip beklenmediğini de gösterir.

0

Bunun nedeni bir zaman aşımı hatası yüzünden olabilir mi? Benim ruby ​​yığın izimde çok b/c düşünüyordum Ben bu hatayı görüyorum ve bir timeout.rb dosyası, sadece bir tahmin gider.

error=SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read finished A 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:920:in `connect' 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:920:in `block in connect' 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:76:in `timeout' 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:920:in `connect' 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:863:in `do_start' 
/Users/Ben/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/net/http.rb:852:in `start' 
/Users/Ben/.rvm/gems/[email protected]/gems/rest-client-1.8.0/lib/restclient/request.rb:413:in `transmit' 
/Users/Ben/.rvm/gems/[email protected]/gems/rest-client-1.8.0/lib/restclient/request.rb:176:in `execute' 
/Users/Ben/.rvm/gems/[email protected]/gems/rest-client-1.8.0/lib/restclient/request.rb:41:in `execute' 
/Users/Ben/.rvm/gems/[email protected]/gems/rest-client-1.8.0/lib/restclient.rb:65:in `get' 

Bu durumda RestClient lib

RestClient::Request.execute(method: :get, url: url, 
          timeout: 30, 
          headers: {:accept => :json, 
             :Authorization =>access_token_header()} 
İlgili konular