Błąd SSL podczas instalacji rubygems, nie można pobrać danych z " https://rubygems.org/

Próbuję zrobić samouczek Michaela Hartla. Kiedy próbuję zainstalować rails 3.2.14 w moim gemset, pojawia się następujący problem:

$ gem install rails-v 3.2.14

Nie można znaleźć poprawnego klejnotu 'rails' (=3.2.14), oto dlaczego:

Nie można pobrać danych z https://rubygems.org/ - SSL_connect return = 1 errno=0 state=SSLv3 read server certificate B: certificate verify failed ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )

Po Googlowaniu okazało się, że mogę użyć źródła non-SSL dla rubygems, więc uruchomiłem:

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

Potem, kiedy próbowałem ponownie zainstalować rails, okazało się to sukcesem. Jednak nadal mam problem powyżej, ale jako ostrzeżenie:

WARNING: Unable to pull data from ' https://rubygems.org/': SSL_connect return=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed ( https://s3.amazonaws.com/production.s3.rubygems.org/specs.4.8.gz )

Jak mogę całkowicie usunąć to Ostrzeżenie / błąd?

Używam:

  • rvm 1.22.15
  • ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
  • OSX 10.8.5
Author: BryanH, 2013-10-03

24 answers

Dla użytkowników RVM i OSX

Upewnij się, że używasz najnowszego rvm:

rvm get stable

Wtedy możesz zrobić dwie rzeczy:

  1. Aktualizacja certyfikatów:

    rvm osx-ssl-certs update all
    
  2. Update rubygems:

    rvm rubygems latest
    

Dla użytkowników spoza RVM

Znajdź ścieżkę dla certyfikatu:

cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')

Wygeneruj certyfikat:

security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"

Cały kod: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs


Dla non OSX users

Upewnij się, że zaktualizowałeś pakiet ca-certificates. Na starych systemach może być niedostępny - nie należy używać starego systemu, który nie otrzymuje już aktualizacji zabezpieczeń)

Windows note

The Ruby Installer builds for windows są przygotowane przez Luis Lavena i ścieżka do certyfikatów będzie pokazywać coś w rodzaju C:/Users/Luis/... check https://github.com/oneclick/rubyinstaller/issues/249 więcej szczegółów i ta odpowiedź https://stackoverflow.com/a/27298259/497756 do naprawy.

 385
Author: mpapis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-23 06:29:15

Najnowsze ustalenia...

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

Najważniejsze...Pobierz https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

Dowiedzieć się, gdzie go trzymać

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

Następnie po prostu skopiuj .plik pem ../ 2.1.0 / rubygems / ssl_certs / i dalej o swojej firmie.

 241
Author: beauXjames,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-10 18:11:53

Dla użytkowników windows

Goto link http://rubygems.org/pages/download

  1. Pobierz najnowszy plik zip (w moim przypadku 2.4.5)
  2. rozpakuj to
  3. Uruchom " Ruby setup.rb " w rozpakowanym folderze
  4. Teraz uruchom polecenie Gem install
 177
Author: Dheerendra Kulkarni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 20:13:54

Jeśli chcesz użyć źródła innego niż SSL, spróbuj najpierw usunąć źródło HTTPS, a następnie dodać źródło HTTP:

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

UPDATE:

Jak stwierdza mpapis, powinno to być stosowane tylko jako tymczasowe obejście. Mogą wystąpić pewne obawy dotyczące bezpieczeństwa, jeśli uzyskujesz dostęp do RubyGems za pośrednictwem źródła non-SSL.

Gdy obejście problemu nie jest już potrzebne, należy przywrócić SSL-source:

sudo gem sources -r http://rubygems.org
sudo gem sources -a https://rubygems.org
 55
Author: Eduardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-08 09:35:16

W systemie Windows musisz użyć źródła HTTP, aby zaktualizować gem, a następnie zmienić z powrotem na użycie HTTPS.

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

Edit: Warning I ' m not sure if this is safe . Czy ktoś wie czy pakiety ruby są podpisane? Przyjęta odpowiedź wygląda na lepsze rozwiązanie.

 17
Author: roo2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 04:34:08

Dla użytkowników Windows (i może innych)

Rubygems.org posiada przewodnik, który nie tylko wyjaśnia, jak rozwiązać ten problem, ale także dlaczego tak wiele osób go ma: Aktualizacja certyfikatu SSL Powodem problemu jest rubygems.org przełączony na bardziej bezpieczny certyfikat SSL (SHA-2, który wykorzystuje szyfrowanie 256bit). Narzędzie wiersza poleceń rubygems łączy odniesienie do właściwego certyfikatu. Dlatego samego rubygems nie można zaktualizować przy użyciu starszej wersji rubygems. Rubygems należy najpierw zaktualizować ręcznie.

Najpierw dowiedz się, jakie masz rubygems:

rubygems –v

W zależności od tego, czy masz 1.8.x, 2.0.x lub 2.2.x, musisz pobrać gem aktualizacji o nazwie "rubygems-update-X. Y. Z. gem", gdzie X. Y. Z jest wersją, której potrzebujesz. Działa 1.8.X: download: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Działa 2.0.X: download: https://github.com/rubygems/rubygems/releases/tag/v2.0.15 Bieg 2.2.x: Pobierz: https://github.com/rubygems/rubygems/releases/tag/v2.2.3

Install update gem:

gem install –-local full_path_to_the_gem_file

Uruchom gem aktualizacji:

update_rubygems --no-ri --no-rdoc

Sprawdź czy rubygems został zaktualizowany:

rubygems –v

Uninstall update gem:

gem uninstall rubygems-update -x
W tym momencie, może być OK. Ale możliwe, że nie masz najnowszego pliku klucza publicznego dla nowego certyfikatu. Aby to zrobić:

Pobierz najnowszy certyfikat, (obecnie AddTrustExternalCARoot-2048.pem) od https://rubygems.org/pages/download . Wszystkie certy znajdują się również pod adresem: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs

Dowiedz się, gdzie to umieścić:

gem which rubygems

Umieść ten plik w katalogu "rubygems \ ssl_certs" w tej lokalizacji.

Zgodnie z commitem rubygems, certyfikaty są przenoszone do bardziej specyficznych katalogów. Tak więc obecnie certyfikat (AddTrustExternalCARoot-2048.pem) oczekuje się, że na following path lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

 10
Author: John Pankowicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-04 16:52:40

Spróbuj użyć strony źródłowej dla klejnotów, czyli rubygems.org. użyj http zamiast https. Ta metoda nie wymaga żadnej pracy, takiej jak instalacja Cert i tym podobne.

Przykład-

gem install typhoeus --source http://rubygems.org
To działa, ale jest jedno zastrzeżenie.

Gem jest zainstalowany, ale dokumentacja nie jest spowodowana błędami cert. Oto błąd, który otrzymuję

Parsing documentation for typhoeus-0.7.0 WARNING: Unable to pull 
data from 'https://rubygems.org/': SSL_connect returned=1 errno=0 
state=SSLv3 read server certificate B: certificate verify failed 
(https://rubygems.org/latest_specs.4.8.gz)
 9
Author: Erran Morad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-10 00:35:12

Running gem update --system work for me

 7
Author: user3408293,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-11 10:30:50

Upewnij się, że zegar systemowy jest prawidłowy

Ten dokładny błąd przydarzył mi się dzisiaj na wirtualnej maszynie Ubuntu działającej na VirtualBox. Wypróbowałem większość rozwiązań pokazanych powyżej, zanim zauważyłem, że wróciłem z bardzo starego stanu zawieszenia, a mój zegar był wyłączony przez wiele dni.

Aktualizacja zegara natychmiast naprawiła mój problem. Oto Komenda, której użyłem w moim przypadku:

Sudo service NTP stop & & sudo ntpdate pool.ntp.org & & sudo service NTP start

 5
Author: dbrewer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-25 00:19:15

Po prostu odinstalowanie i ponowne zainstalowanie openssl za pomocą homebrew rozwiązało ten problem.

brew uninstall --force openssl

brew install openssl

 4
Author: ntj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-07 05:13:24

Dla użytkowników Fedory

Update the cert.pem to newest file that provide by cURL: 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
 3
Author: ENDOH takanao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-01 02:02:39

Jeśli używasz windows, otwórz https://rubygems.org / z internet Explorerem.

Kliknij informacje zabezpieczające i zaimportuj certyfikat. Najważniejsze jest to, że Twój łańcuch certyfikacji jest przestarzały i musisz dodać ten nowy certyfikat. Pamiętaj, że nie jest to naruszenie bezpieczeństwa, o ile możesz zweryfikować certyfikat jako zaufany.

 3
Author: Paulo Fidalgo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-12 10:36:29

W moim przypadku certyfikaty Ubuntu CA były nieaktualne. Naprawiłem to uruchamiając:

 sudo update-ca-certificates
 2
Author: maniek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-14 09:44:23

Approach / one-liner, który może być zautomatyzowany do pobierania gemów za pomocą HTTP zamiast HTTPS:

printf -- '---\n:sources:\n- http://rubygems.org\n' | tee ~/.gemrc
 2
Author: laimison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-11 15:52:18

Szczególny przypadek RubyGems (narzędzia wiersza poleceń) polega na tym, że wymaga on połączenia w swoim kodzie certyfikatów zaufania, które umożliwiają RubyGems nawiązanie połączenia z serwerami, nawet jeśli bazowy system operacyjny nie jest w stanie zweryfikować ich tożsamości.

Jeszcze kilka miesięcy temu ten certyfikat był dostarczany przez jednego CA, ale nowszy certyfikat jest dostarczany przez innego.

Z tego powodu istniejące instalacje RubyGems musiałyby zostać zaktualizowane przed zmianą certyfikatu i dać wystarczająco dużo czasu, aby zmiana rozprzestrzeniła się (i ludzie zaktualizowali)

Każdy może znaleźć swoje rozwiązanie, wykonując proste kroki podane w linku poniżej

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

 1
Author: ImranNaqvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-17 06:28:48

Try

gem update --system
Mam nadzieję, że to rozwiąże problem.
 1
Author: puneet18,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-11 06:33:52

Miałem ten sam problem podczas próby instalacji ogórkowego klejnotu. Zauważyłem jednak, że bundler gem jest już zainstalowany z ruby 2.0. Stworzyłem Gemfile.rb w folderze projektu z wymaganymi klejnotami i wykonaj następujące kroki

  1. Przejdź do folderu projektu
  2. Type bundle install

Wszystkie wymagane klejnoty zainstalowane.

 0
Author: user3037926,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-13 15:35:37

Dla Illumos / Solaris za pomocą opencsw pkgutil:

Zainstaluj Cswcacertyfikaty przed 'Gem install'

pkgutil -yi CSWcacertificates

Jeśli używasz ruby kit, który nie jest z OpenCSW, Twoja wersja ruby może oczekiwać, że znajdzie plik certyfikatu w innym miejscu. W tym przypadku po prostu podlinkowałem symbolicznie /etc/opt/csw/ssl/cert OpenCSW.pem do oczekiwanego miejsca.

Sprawdź, gdzie ruby spodziewa się go znaleźć:

export cf=`ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'` && echo $cf

Następnie, jeśli istnieje rozbieżność, połącz ją:

ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf
 0
Author: Jacob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-23 05:07:12

Lub można zapobiec przez firewall jak ja. Spróbuj tego:

Sudo Gem install --http-proxy http://localhost:port cocoapods-V

 0
Author: Victor Choy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 04:49:46

Dla użytkownika Windows:

Po pomyślnym zainstalowaniu Rubiego 2.2.3 (+ rubygems 2.5.1) na maszynie testowej z dostępem do Internetu, miałem ten błąd SSL, gdy zainstalowałem bundlera na maszynie produkcyjnej, w sieci.

Ponieważ miałem ograniczenia dostępu do sieci i nie było możliwości zmiany ustawień dostępu SSL, a na podstawie komunikatów o błędach wykonałem poniższe kroki, aby zakończyć instalację bundlera (może to zabrzmi szalenie, ale to zadziałało...).

Przez maszynę z nieograniczonym dostępem do Internetu, pobrał następujące pliki:

Dodałem te pliki na serwerze intranetowym, zachowując strukturę folderów linków powyżej:

  • $INTRANET_HOME

Spec.4.8.gz e latest_specs.4.8.gz

  • $INTRANET_HOME\quick\Marshal.4.8

Bundler-1.11.2.gemspec.rz

  • $INTRANET_HOME\gems

Bundler-1.11.2.gem

Potem dodałem mój intranet do access gem źródło:

gem sources -a http://mydomain.com.br

Uruchomiłem z sukcesem "Gem install bundler" po instalacji, wystarczyło usunąć mój intranet z gem:

gem sources -r http://mydomain.com.br

Mam nadzieję, że będzie to przydatne w każdej podobnej sytuacji....

 0
Author: Rogério Arantes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 17:22:21

Jako użytkownik Windows 10 podążałem za odpowiedzią Dheerendry i pewnego dnia mi się udało. Następnego dnia ponownie doświadczyłem problemu, a jego poprawka nie zadziałała. Dla mnie poprawką była aktualizacja bundler z:

gem update bundler

Wydaje mi się, że moja wersja bundler miała ponad kilka miesięcy.
 0
Author: Alexander,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:36

Upewnij się, że masz zainstalowany ruby z opcją --disable-binary , jeśli NIE, odinstaluj go i zainstaluj ponownie za pomocą opcji.

Więcej informacji tutaj

 0
Author: Feuda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-26 03:01:37

Odpowiedź jest już nieaktualna. Ponieważ napotkałem problem ze starszymi Windows ruby teraz zamieszczę odpowiedź.

Kiedy chciałem zainstalować klejnot 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)

Poniższe kroki wymagają skopiowania tylko certyfikatów z nowszego systemu Windows ruby. Weź najnowszy ruby (lub przynajmniej ruby 2.4.0) i wykonaj następujące czynności:

Kopiuj certyfikaty z tych katalogów (dostosuj do swoich potrzeb):
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

To cel podróży (ponownie dostosuj się do tego, czego potrzebujesz):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs

 0
Author: tukan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-03 07:44:36

Pobierz cacert.plik pem z http://curl.haxx.se/ca/cacert.pem . zapisz ten plik do C:\RailsInstaller\cacert.pem.

Teraz poinformuj Rubiego o pakiecie urzędu certyfikacji, ustawiając SSL_CERT_FILE. Aby ustawić to w bieżącej sesji wiersza polecenia, wpisz:

Set SSL_CERT_FILE = C:\RailsInstaller\cacert.pem

 0
Author: Shubham Kumar Gupta Ggps,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-08 16:15:51