[ruby-on-rails] एसएसएल त्रुटि rubygems स्थापित करते समय, 'https://rubygems.org/ से डेटा खींचने में असमर्थ


Answers

नवीनतम निष्कर्ष ...

https://gist.github.com/luislavena/f064211759ee0f806c88

सबसे महत्वपूर्ण बात ... डाउनलोड https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

यह कहां चिपकाएं

C:\>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb

फिर बस .pem फ़ाइल को ../2.1.0/rubygems/ssl_certs/ में कॉपी करें और अपने व्यवसाय के बारे में जानें।

Question

मैं माइकल हार्टल ट्यूटोरियल करने की कोशिश कर रहा हूं। जब मैं अपने रत्न में रेल 3.2.14 स्थापित करने का प्रयास करता हूं, तो मुझे निम्न समस्या मिलती है:

$ मणि स्थापित रेल -v 3.2.14

त्रुटि: वैध मणि 'रेल' (= 3.2.14) नहीं मिला, यहां क्यों है:

https://rubygems.org/ से डेटा डाउनलोड करने में असमर्थ - SSL_connect वापस = 1 errno = 0 स्थिति = SSLv3 सर्वर प्रमाण पत्र पढ़ें बी: प्रमाण पत्र सत्यापित विफल ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )

चारों ओर घूमने के बाद, मैंने पाया कि मैं rubygems के लिए एक गैर-एसएसएल स्रोत का उपयोग कर सकता था इसलिए मैं भाग गया:

sudo gem sources -a http://rubygems.org

फिर, जब मैंने फिर से रेल स्थापित करने की कोशिश की, तो यह सफल रहा। हालांकि, मुझे अभी भी उपरोक्त मुद्दा मिला है लेकिन एक चेतावनी के रूप में:

चेतावनी: ' https://rubygems.org/ ' से डेटा खींचने में असमर्थ: SSL_connect वापस = 1 errno = 0 स्थिति = SSLv3 सर्वर प्रमाण पत्र पढ़ें बी: प्रमाण पत्र सत्यापित विफल ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )

मैं इस चेतावनी / त्रुटि को पूरी तरह से कैसे हटा सकता हूं?

मैं निम्नलिखित का उपयोग कर रहा हूँ:

  • आरवीएम 1.22.15
  • रूबी 2.0.0p247 (2013-06-27 संशोधन 41674) [x86_64-darwin12.3.0]
  • ओएसएक्स 10.8.5



यदि आप गैर-SSL स्रोत का उपयोग करना चाहते हैं, तो पहले HTTPS स्रोत को निकालने का प्रयास करें, और उसके बाद HTTP को जोड़ना:

sudo gem sources -r https://rubygems.org
sudo gem sources -a http://rubygems.org  

अद्यतन करें:

जैसा कि mpapis कहते हैं, यह केवल एक अस्थायी कामकाज के रूप में इस्तेमाल किया जाना चाहिए। यदि आप गैर-एसएसएल स्रोत के माध्यम से रूबीगेम्स तक पहुंच रहे हैं तो कुछ सुरक्षा चिंताएं हो सकती हैं।

एक बार वर्कअराउंड की आवश्यकता नहीं होने के बाद, आपको SSL-स्रोत को पुनर्स्थापित करना चाहिए:

sudo gem sources -r http://rubygems.org
sudo gem sources -a https://rubygems.org



या मेरे जैसे फ़ायरवॉल से रोका जा सकता है। इसे इस्तेमाल करे:

sudo मणि इंस्टॉल --http-proxy http://localhost:port cocoapods -V




विंडोज 10 उपयोगकर्ता के रूप में, मैंने धीरेंद्र के answer का पालन किया, और यह एक दिन मेरे लिए काम किया। अगले दिन, मैंने इस मुद्दे को फिर से अनुभव किया, और उसका फिक्स काम नहीं किया। मेरे लिए, फिक्स को bundler अपडेट करना था:

gem update bundler

मेरा मानना ​​है कि bundler का मेरा संस्करण कुछ महीने से अधिक पुराना था।




रूबीजम्स (कमांड लाइन टूल) का विशेष मामला यह है कि इसे अपने कोड ट्रस्ट सर्टिफिकेट्स के अंदर बंडल करने की आवश्यकता होती है, जो रूबीगेम्स को सर्वर के साथ कनेक्शन स्थापित करने की इजाजत देता है, भले ही बेस ऑपरेटिंग सिस्टम उनकी पहचान को सत्यापित करने में असमर्थ हो।

कुछ महीने पहले तक, यह प्रमाण पत्र एक सीए द्वारा प्रदान किया गया था, लेकिन नए प्रमाणपत्र को एक अलग से प्रदान किया जाता है।

इस वजह से, रूबीजैम्स के मौजूदा इंस्टॉलेशन को प्रमाणपत्र के स्विच से पहले अपडेट करना होगा और बदलाव को बदलने के लिए पर्याप्त समय देना होगा (और अपडेट करने के लिए लोग)

नीचे दिए गए लिंक में दिए गए सरल चरणों का पालन करके कोई भी अपना समाधान ढूंढ सकता है

https://gist.github.com/luislavena/f064211759ee0f806c88




ककड़ी मणि स्थापित करने की कोशिश करते समय मुझे एक ही समस्या थी। हालांकि मैंने देखा कि बंडलर मणि पहले से रूबी 2.0 के साथ स्थापित है। मैंने प्रोजेक्ट फ़ोल्डर में आवश्यक रत्न के साथ एक Gemfile.rb बनाया और इस चरण का पालन किया

  1. प्रोजेक्ट फ़ोल्डर में नेविगेट करें
  2. प्रकार बंडल स्थापित करें

सभी आवश्यक रत्न स्थापित।




विंडोज उपयोगकर्ताओं के लिए (और शायद अन्य)

Rubygems.org में एक गाइड है जो न केवल इस समस्या को ठीक करने के बारे में बताता है, बल्कि यह भी क्यों है कि बहुत से लोग इसे प्राप्त कर रहे हैं: SSL प्रमाणपत्र अद्यतन समस्या का कारण rubygems.org एक अधिक सुरक्षित SSL प्रमाणपत्र (SHA-2) पर स्विच किया गया है 256 बिट एन्क्रिप्शन का उपयोग करें)। Rubygems कमांड लाइन उपकरण सही प्रमाणपत्र के संदर्भ में बंडल करता है। इसलिए rubygems खुद rubygems के पुराने संस्करण का उपयोग कर अद्यतन नहीं किया जा सकता है। Rubygems पहले मैन्युअल रूप से अद्यतन किया जाना चाहिए।

सबसे पहले पता लगाएं कि आपके पास क्या रूबीज है:

rubygems –v

इस पर निर्भर करता है कि आपके पास 1.8.x, 2.0.x या 2.2.x है, तो आपको "rubygems-update-XYZgem" नामक एक अपडेट मणि डाउनलोड करना होगा, जहां XYZ आपको आवश्यक संस्करण है। चल रहा है 1.8.x: डाउनलोड: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 रनिंग 2.0.x: डाउनलोड: https://github.com/rubygems/rubygems/releases/tag/v2.0.15 रनिंग 2.2.x: डाउनलोड करें: https://github.com/rubygems/rubygems/releases/tag/v2.2.3

अद्यतन मणि स्थापित करें:

gem install –-local full_path_to_the_gem_file

अद्यतन मणि चलाएं:

update_rubygems --no-ri --no-rdoc

जांचें कि rubygems अद्यतन किया गया था:

rubygems –v

अनइंस्टॉल अपडेट मणि:

gem uninstall rubygems-update -x

इस बिंदु पर, आप ठीक हो सकते हैं। लेकिन यह संभव है कि आपके पास नए प्रमाणपत्र के लिए नवीनतम सार्वजनिक कुंजी फ़ाइल न हो। यह करने के लिए:

Https://rubygems.org/pages/download से नवीनतम प्रमाणपत्र डाउनलोड करें (वर्तमान में AddTrustExternalCARoot-2048.pem)। सभी कर्ट भी यहां स्थित हैं: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs

पता लगाएं कि इसे कहां रखा जाए:

gem which rubygems

इस फ़ाइल को इस स्थान पर "rubygems \ ssl_certs" निर्देशिका में रखें।

Rubygems प्रतिबद्ध के अनुसार, प्रमाणपत्र अधिक विशिष्ट निर्देशिकाओं में स्थानांतरित कर रहे हैं। इस प्रकार, वर्तमान में प्रमाण पत्र (AddTrustExternalCARoot-2048.pem) निम्न पथ lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem पर होने की उम्मीद है




चल रहा gem update --system मेरे लिए काम किया




फेडोरा उपयोगकर्ताओं के लिए

cert.pem द्वारा प्रदान की गई नवीनतम फ़ाइल में cert.pem को अद्यतन करें: http://curl.haxx.se/ca/cacert.pem

curl -o `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' |tr -d \"` http://curl.haxx.se/ca/cacert.pem



सुनिश्चित करें कि आपकी सिस्टम घड़ी सही है

वर्चुअलबॉक्स पर चल रहे उबंटू आभासी मशीन पर आज यह सटीक त्रुटि हुई। मैंने ऊपर दिखाए गए अधिकांश समाधानों का प्रयास करने से पहले मैंने देखा कि मैं बहुत पुराने निलंबित राज्य से फिर से शुरू हुआ था, और मेरी घड़ी कई दिनों से बंद थी।

घड़ी को अपडेट करने से तुरंत मेरी समस्या ठीक हो गई। यहां मेरे आदेश में इस्तेमाल किया गया आदेश है:

sudo सेवा ntp stop && sudo ntpdate pool.ntp.org && sudo service ntp प्रारंभ करें




जवाब अब मान्य नहीं है। चूंकि मुझे पुराने विंडोज रूबी के साथ इस मुद्दे का सामना करना पड़ा है, इसलिए मैं जवाब पोस्ट करूंगा।

जब मैं एक activesupport मणि स्थापित करना चाहता था:

gem in activesupport --version 5.1.6

ERROR:  Could not find a valid gem 'activesupport' (= 5.1.6), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B
: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

निम्नलिखित चरणों को केवल नए विंडोज़ रूबी से प्रमाणपत्रों की प्रतिलिपि बनाने की आवश्यकता है। नवीनतम रूबी (या कम से कम रूबी 2.4.0 ) लें और निम्न कार्य करें:

इन निर्देशिकाओं से प्रमाण पत्र कॉपी करें (अपनी आवश्यकताओं के अनुसार समायोजित करें):
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\rubygems.org
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\index.rubygems.org

गंतव्य के लिए (फिर आपको जो चाहिए उसे समायोजित करें):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs




Related