2015-11-05 80 views
0

我剛剛注意到我的Ruby代碼無法驗證來自Google的證書(Facebook工作正常,以及普通的HTTP)。Ruby HTTP沒有正確地驗證來自Google的證書

✗ ruby -rnet/https -e "Net::HTTP.get URI('http://www.google.com')" 
✗ ruby -rnet/https -e "Net::HTTP.get URI('https://www.facebook.com')" 
✗ ruby -rnet/https -e "Net::HTTP.get URI('https://www.google.com')" 
/Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:923:in `block in connect' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:74:in `timeout' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:923:in `connect' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:863:in `do_start' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:852:in `start' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:583:in `start' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:478:in `get_response' 
    from /Users/ephracis/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:455:in `get' 

我在OS X 10.11.1上運行ruby 2.2.2p95。

+0

我不能重複該問題。所有這三個工具都適用於帶有OS X 10.10.5的Ruby v2.2.3。也許你的Google證書不正確? –

+0

我的猜測是它與在自制軟件中設置openssl有關。但我缺乏必要的技能來正確地解決問題。 –

回答

0

也許比答案更多的是解決辦法,但至少它解決了我的問題:

安裝Ruby頭解決了這個問題:

rvm install ruby-head 
rvm use ruby-head 

我試圖做我目前的紅寶石重新安裝, 2.2.2,並試圖升級到2.2.3,但我仍然有同樣的錯誤。目前紅寶石頭指向2.3.0dev,該版本似乎適合我。