9

मैं सामाजिक प्राधिकरण के साथ रेल ऐप विकसित कर रहा हूं। फेसबुक और ट्विटर लॉगिन ठीक काम करता है, लेकिन कुछ अजीब गूगल के साथ जा रहा है ...Google OAuth SSL त्रुटि - SSL_connect वापस = 1 errno = 0 स्थिति = SSLv3 सर्वर प्रमाण पत्र पढ़ें बी: प्रमाण पत्र सत्यापित विफल

गूगल के लिए मेरे प्रारंभकर्ता:

provider :google_oauth2, OAUTH_CONFIG[:google_api_key], OAUTH_CONFIG[:google_api_secret], { 
    :access_type => 'offline', 
    :prompt => 'consent', 
    :scope => 'userinfo.email, userinfo.profile, youtube.readonly' 
    } 

मेरे त्रुटि है, जो मैं गूगल के साथ जब क्लिक लॉगिन देखें:

Faraday::Error::ConnectionFailed 
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:920:in `connect' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:920:in `block in connect' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/timeout.rb:76:in `timeout' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:920:in `connect' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:863:in `do_start' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:852:in `start' 
/Users/bmalets/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/net/http.rb:1369:in `request' 
faraday (0.8.8) lib/faraday/adapter/net_http.rb:75:in `perform_request' 
faraday (0.8.8) lib/faraday/adapter/net_http.rb:38:in `call' 
faraday (0.8.8) lib/faraday/request/url_encoded.rb:14:in `call' 
faraday (0.8.8) lib/faraday/connection.rb:253:in `run_request' 
oauth2 (0.8.1) lib/oauth2/client.rb:88:in `request' 
oauth2 (0.8.1) lib/oauth2/client.rb:131:in `get_token' 
oauth2 (0.8.1) lib/oauth2/strategy/auth_code.rb:29:in `get_token' 

SSL प्रमाणपत्रों में क्या गलत है? कृपया,

Google खोज परिणामों में मुझे कई समान उत्तरों दिखाई देते हैं - अपडेट 'openssl' लाइब्रेरी, रूबी, आरवीएम, अपडेट जेमेट्स, ब्लै-ब्लै और कई अन्य लोगों को पुनर्स्थापित करें ... मैंने कभी-कभी कोशिश की है, कुछ भी मेरी मदद नहीं करता है।

पर्यावरण: रेल 4.1.6, माणिक 2.1.4, OS_X Yosemite

उत्तर

5

एक और उत्तर ओपनएसएसएल के VERIFY_PEER विकल्प को अक्षम करने का कहना है जिसका अर्थ है कि आपका ऐप प्रमाणपत्र प्रमाणित नहीं कर रहा है और आप यह सत्यापित नहीं कर सकते कि आप क्वेरी करते समय Google से कनेक्ट कर रहे हैं। यह एक बड़ा सुरक्षा जोखिम है और आपको यह कभी नहीं करना चाहिए।

आपके द्वारा वर्णित समस्या के लिए Google-api-ruby-client (https://github.com/google/google-api-ruby-client/issues/253) के लिए गिटहब रेपो पर कोई समस्या है। वर्तमान तरीके को अपने आवेदन में जोड़ने के लिए है:

ENV['SSL_CERT_FILE'] = Gem.loaded_specs['google-api-client'].full_gem_path+'/lib/cacerts.pem' 

एक रेल एप्लिकेशन के लिए, आप config/application.rb में एक पंक्ति के रूप में जोड़ना होगा।

+0

जब मैं अपनी कॉन्फ़िगरेशन फ़ाइल में उपरोक्त पंक्ति जोड़ता हूं तो मेरा रेल ऐप मेरा स्थानीय सर्वर शुरू करने में विफल रहता है। क्या आप कार्यान्वयन पर और जानकारी दे सकते हैं? – tylerSF

+0

मुझे लगता है कि आपके पास मणि 'google-api-client' स्थापित नहीं है जो प्रमाण पत्र फ़ाइल को ठीक करता है जो इसे ठीक करता है, आप अपने SSL_CERT_FILE को एक अलग cacerts.pem फ़ाइल पर भी इंगित कर सकते हैं यदि आपके पास/यह मणि चाहिए कार्यान्वयन का विवरण और यह एक समस्या है जिसे तय किया जा सकता है, जिथब मुद्दे पर है, मैंने सोचा था कि आप इस मणि का उपयोग कर रहे थे लेकिन आप स्पष्ट रूप से नहीं हैं। – anothermh

6

मैं अपने ऐप में जोड़ा इस सुंदर नहीं कील प्रारंभ:

if Rails.env.development? 
    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE 
end 

अब के लिए लॉग इन विकास मोड में काम करता है।

+1

यह मेरे लिए काम करता है। धन्यवाद bmalets – sushilprj

संबंधित मुद्दे