[ruby-on-rails] बंडल इंस्टॉल SSL प्रमाणपत्र सत्यापन त्रुटि के साथ विफल रहता है



Answers

एसएसएल मणि स्रोत को गैर-एसएसएल के साथ एक अस्थायी समाधान के रूप में बदलें:

Question

जब मैं सेंट्स 5.5 पर अपने रेल 3 प्रोजेक्ट के लिए bundle install हूं तो यह एक त्रुटि के साथ विफल रहता है:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 
read server certificate B: certificate verify failed 
(https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem)
An error occured while installing multi_json (1.3.2), and Bundler cannot continue.
Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling.

जब मैं मैन्युअल रूप से gem install multi_json -v '1.3.2' करने का प्रयास करता हूं ( gem install multi_json -v '1.3.2' द्वारा gem install multi_json -v '1.3.2' ) यह काम करता है। एक ही समस्या कई अन्य रत्नों के साथ होती है। मैं आरवीएम (1.12.3), रूबी 1.9.2, बंडलर 1.1.3 का उपयोग करता हूं।

इसे कैसे जोड़ेंगे?




यदि आप मैक पर हैं और RVM (~ 1.20) के हाल के संस्करण का उपयोग करते हैं, तो निम्न आदेश मेरे लिए काम करता है।

rvm osx-ssl-certs update



मुझे हाल ही में इस मुद्दे का सामना करना पड़ा और here उल्लिखित चरणों का पालन किया here । एक मौका हो सकता है कि आप सही ओपनएसएसएल प्रमाण पत्र की ओर इशारा नहीं कर रहे हैं। चलने के बाद:

rvm osx-ssl-certs status all
rvm osx-ssl-certs update all

तथा

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

बंडल पूरा भाग गया!




मुझे एक ही त्रुटि मिल रही थी। यहां बताया गया है कि मैंने इसे कैसे हल किया: अपनी पथ निर्देशिका में, Gemfile की जांच करें। स्रोत को gemfile में http के बजाय http में संपादित करें और इसे सहेजें। यह SSL प्रमाण पत्र issue.l के बिना बंडलर स्थापित कर सकता है




Windows7 पर आप cacert.pem फ़ाइल को here से डाउनलोड कर सकते here और वातावरण को SSL_CERT_FILE को उस पथ पर सेट कर सकते हैं जहां आप प्रमाणपत्र संग्रहीत करते हैं उदा।

SET SSL_CERT_FILE="C:\users\<username>\cacert.pem"

या आप इस स्क्रिप्ट में चर को इस ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem" जैसे सेट कर सकते हैं।

<Username> को अपने उपयोगकर्ता नाम के साथ बदलें।




अस्थायी समाधान (जैसा कि स्वामित्व द्वारा सूचित किया गया है):

लाइन सहित :ssl_verify_mode: 0 आपके घर पथ में .gemrc नामक फ़ाइल बनाएं या संशोधित करें :ssl_verify_mode: 0

यह बंडलर को रत्नों के एसएसएल प्रमाणपत्रों की जांच करने से रोक देगा जब यह उन्हें स्थापित करने का प्रयास करेगा।

* निक्स उपकरणों के लिए, 'होम पथ' का मतलब ~/.gemrc । यदि आप चाहें तो आप /etc/gemrc भी बना सकते हैं। विंडोज एक्सपी के लिए, 'होम पथ' का अर्थ है c:\Documents and Settings\All Users\Application Data\gemrc । विंडोज 7 के लिए, C:\ProgramData\gemrc




सबसे सरल समाधान:

rvm pkg install openssl
rvm reinstall all --force

देखा!




यह मेरे लिए काम किया:

  • https://rubygems.org/pages/download पर नवीनतम मणि डाउनलोड https://rubygems.org/pages/download
  • gem install --local [path to downloaded gem file] साथ gem install --local [path to downloaded gem file]
  • update_rubygems साथ रत्न अपडेट करें
  • जांचें कि आप मणि - संस्करण के साथ नवीनतम मणि संस्करण पर हैं



विरासत विंडोज सिस्टम और रूबी 1.9 संस्करण पर मेरे लिए काम करने वाली एकमात्र चीज guides.rubygems.org/ssl-certificate-update से cacert फ़ाइल डाउनलोड कर रही है

और उसके बाद बंडल इंस्टॉल चलाने से पहले कमांड चला रहा है

bundle config --global ssl_ca_cert /path/to/file.pem



विंडोज़ पर इस समस्या को आप कैसे ठीक करते हैं:

.perm फ़ाइल डाउनलोड करें, फिर कमांड प्रॉम्प्ट में SSL_CERT_FILE सेट करें

https://gist.github.com/fnichol/867550




विंडोज के लिए मेरा स्थायी फिक्स:

  1. CACert डाउनलोड करें, guides.rubygems.org/ssl-certificate-update से C:\ruby\ssl_certs\GlobalSignRootCA.pem रूप में सहेजें

  2. " SSL_CERT_FILE " नामक सिस्टम वैरिएबल बनाएं, C:\ruby\ssl_certs\GlobalSignRootCA.pem

  3. पुनः प्रयास करें: gem install bundler :

C:\gem sources
*** CURRENT SOURCES ***
https://rubygems.org/

C:\gem install bundler
Fetching: bundler-1.13.5.gem (100%)
Successfully installed bundler-1.13.5
1 gem installed



.pem फ़ाइल के बारे में यहां दिए गए सरल कॉपी पेस्ट निर्देश

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

प्रमाण पत्र सत्यापन के लिए विफल रहा

यदि आपने पिछले अनुभागों को पढ़ लिया है, तो आपको पता चलेगा कि इसका क्या अर्थ है (और यदि आप नहीं हैं तो शर्मनाक>)।

हमें AddTrustExternalCARoot-2048.pem डाउनलोड करने की आवश्यकता है। एक कमांड प्रॉम्प्ट खोलें और टाइप करें:

सी:> मणि जो rubygems सी: /Ruby21/lib/ruby/2.1.0/rubygems.rb अब, चलो उस निर्देशिका का पता लगाएं। उसी विंडो के भीतर से, फ़ाइल एक्सटेंशन में पथ भाग दर्ज करें, लेकिन बैकस्लैश का उपयोग करके:

सी:> शुरू सी: \ Ruby21 \ lib \ ruby ​​\ 2.1.0 \ rubygems यह हमारे द्वारा इंगित निर्देशिका के अंदर एक एक्सप्लोरर विंडो खुल जाएगा।

चरण 3: नया ट्रस्ट प्रमाण पत्र कॉपी करें

अब, ssl_certs निर्देशिका का पता लगाएं और .pem फ़ाइल को कॉपी करें जिसे हमने पिछले चरण से प्राप्त किया था।

यह GeoTrustGlobalCA.pem जैसी अन्य फ़ाइलों के साथ सूचीबद्ध किया जाएगा।




ध्यान दें, यदि आप किसी ऐसे स्रोत से रत्न हथिया रहे हैं जो SSL प्रमाणपत्र किसी आंतरिक प्रमाणपत्र प्राधिकरण (या आप SSL निरीक्षण के साथ किसी कंपनी वेब प्रॉक्सी के माध्यम से बाहरी स्रोत से कनेक्ट हो रहे हैं) द्वारा विश्वसनीय है, तो अपने SSL_CERT_FILE env चर को अपनी प्रमाणपत्र श्रृंखला में इंगित करें । सबसे अधिक संभावना है कि आपको अपने सर्कल स्टोर (मैकोज़ पर सिस्टम कीचेन) से अपने रूट प्रमाणपत्र को अपने खोल से एक सुलभ स्थान पर निर्यात करना आवश्यक है यानी:

export SSL_CERT_FILE=~/RootCert.pem



यह तय किया गया है

guides.rubygems.org/ssl-certificate-update

अब जब RubyGems 2.6.x जारी किया गया है, तो आप इस संस्करण में मैन्युअल रूप से अपडेट कर सकते हैं।

https://rubygems.org/downloads/rubygems-update-2.6.7.gem डाउनलोड https://rubygems.org/downloads/rubygems-update-2.6.7.gem

कृपया उस निर्देशिका में फ़ाइल डाउनलोड करें जिसे आप बाद में इंगित कर सकते हैं (उदाहरण के लिए। आपके हार्डड्राइव सी की जड़ :)

अब, अपने कमांड प्रॉम्प्ट का उपयोग कर:

C:\>gem install --local C:\rubygems-update-2.6.7.gem
C:\>update_rubygems --no-ri --no-rdoc

इसके बाद, मणि --वर्जन को नए अपडेट संस्करण की रिपोर्ट करनी चाहिए।

अब आप सुरक्षित रूप से rubygems- अद्यतन मणि को अनइंस्टॉल कर सकते हैं:

C:\>gem uninstall rubygems-update -x



Links