instalacja pakietu nie powiodła się z błędem weryfikacji certyfikatu SSL

Kiedy uruchamiam bundle install dla mojego projektu Rails 3 na Centos 5.5 to nie działa z błędem:

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.

Kiedy próbuję zainstalować gem ręcznie (przez gem install multi_json -v '1.3.2') działa. Ten sam problem występuje z kilkoma innymi klejnotami. Używam RVM( 1.12.3), ruby 1.9.2, bundler 1.1.3.

Jak to naprawić?
Author: mrzasa, 2012-04-20

28 answers

Update

/ Align = "left" / .z tej odpowiedzi każdy powinien wiedzieć, że to powinno być naprawione.

Re: via Ownatik again bundle install failed with SSL certificate verification error

gem update --system

Moja odpowiedź jest nadal poprawna i pozostawiona poniżej w celach informacyjnych, jeśli to nie zadziała dla Ciebie.


Szczerze mówiąc najlepszym tymczasowym rozwiązaniem jest

[...] użyj wersji bez ssl rubygems w swoim gemfile jako tymczasowe obejście.

Przez użytkownika Ownatik

To, co one oznaczają, znajduje się na górze Gemfile w Twoim katalogu Rails application change

source 'https://rubygems.org'

Do

source 'http://rubygems.org'

Zauważ, że druga wersja to http zamiast http s

 306
Author: Will,
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 11:55:02

Zastąp źródło gem ssl Nie-ssl jako rozwiązanie temp:

 221
Author: StuR,
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-08-08 15:28:36

Powodem są stare rubygems. Musisz najpierw zaktualizować część systemu za pomocą źródła non ssl:

gem update --system --source http://rubygems.org/ (tymczasowe aktualizowanie części systemu za pomocą połączenia non-ssl).

Teraz jesteś gotowy do użycia gem update.

 161
Author: Alexander.Iljushkin,
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-11-02 13:29:43

Jeśli używasz komputera mac i używasz najnowszej wersji RVM (~1.20), poniższe polecenie zadziałało dla mnie.

rvm osx-ssl-certs update
 113
Author: chaserx,
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-02 18:03:08

Ten problem należy teraz naprawić. Zaktualizuj rubygems (gem update --system), upewnij się, że openssl jest w najnowszej wersji na Twoim systemie operacyjnym, lub wypróbuj te wskazówki, że nadal nie działa: http://railsapps.github.com/openssl-certificate-verify-failed.html

 55
Author: fbernier,
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-16 17:22:14

Rozwiązanie tymczasowe (jak wskazuje Ownatik):

Utwórz lub zmodyfikuj plik o nazwie .gemrc w twojej ścieżce domowej, w tym Linii :ssl_verify_mode: 0

Uniemożliwi to bundlerowi sprawdzanie certyfikatów SSL klejnotów podczas próby ich zainstalowania.

Dla urządzeń *nix 'ścieżka domowa' oznacza ~/.gemrc. Możesz również utworzyć /etc/gemrc, jeśli wolisz. W systemie Windows XP 'home path' oznacza c:\Documents and Settings\All Users\Application Data\gemrc. Dla Windows 7, C:\ProgramData\gemrc

 49
Author: asfallows,
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
2012-04-20 17:03:09

Na windows7 możesz pobrać cacert.plik pem z TUTAJ i ustaw environementvariable SSL_CERT_FILE na ścieżkę, do której przechowujesz certyfikat np

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

Lub możesz ustawić zmienną w swoim skrypcie w następujący sposób ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"

Zastąp własną nazwą użytkownika.

 16
Author: peter,
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-03-21 18:17:36

Prawdziwe rozwiązanie tego problemu, jeśli używasz RVM:

  1. Update rubygems: gem update --system
  2. Użyj RVM, aby odświeżyć certy SSL: rvm osx-ssl-certs update all

Hat tip to this tip on the RailsApps project !

 15
Author: Alan H.,
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-22 03:50:02

Dla tych z Was, którzy mają zainstalowany ruby przez RVM i chcą szybkiej poprawki (woląc nie czytać na żądanie Bruno) po prostu spróbuj tego:

rvm remove 1.9.x (or whatever version of ruby you are using)
rvm pkg install openssl
rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr

Aby uzyskać więcej szczegółów, oto link, w którym znalazłem rozwiązanie.

Http://railsapps.github.com/openssl-certificate-verify-failed.html

BTW, nie musiałem dotykać Certyfikatów na Ubuntu.

Co najlepsze, to nie jest obejście. Pobierze perełki przez SSL I fail if there if jest problem jak człowiek w środku atak, który jest o wiele lepszy niż wyłączenie zabezpieczeń.
 7
Author: danielrussia,
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
2012-04-28 12:02:06

To zostało ustalone

Http://guides.rubygems.org/ssl-certificate-update/

Teraz RubyGems 2.6.x został wydany, można ręcznie zaktualizować do tej wersji.

Pobierz https://rubygems.org/downloads/rubygems-update-2.6.7.gem

Pobierz plik w katalogu, do którego możesz później wskazać (np. korzeń twojego harddrive ' A C:)

Teraz, używając wiersza polecenia:

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

Po tym, gem --version powinien zgłosić nowa wersja aktualizacji.

Możesz teraz bezpiecznie odinstalować rubygems-update gem:

C:\>gem uninstall rubygems-update -x
 6
Author: Roffers,
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-20 12:25:37

Listę certyfikatów CA można pobrać ze strony internetowej curl pod adresem http://curl.haxx.se/ca/cacert.pem

Następnie Ustaw zmienną środowiskową SSL_CERT_FILE tak, aby Ruby mógł jej użyć. Na przykład w Linuksie:

$ SSL_CERT_FILE=~/cacert.pem bundle install

(odniesienie: https://gist.github.com/fnichol/867550 )

 5
Author: arcanex,
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-18 05:36:20

Prosta instrukcja kopiowania wklejania podana tutaj o .plik pem

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

Dla nieudanej weryfikacji certyfikatu

Jeśli przeczytałeś poprzednie sekcje, będziesz wiedział, co to oznacza (a wstyd > na Ciebie, jeśli nie).

Musimy pobrać AddTrustExternalCARoot-2048.pem . Otwórz wiersz polecenia i wpisz:

C: > gem which rubygems C:/Ruby21/lib/ruby/2.1.0/rubygems.rb Zlokalizujmy ten katalog. W tym samym oknie wprowadź część ścieżki do rozszerzenia pliku, ale zamiast tego użyj odwrotnych ukośników:

C: > start C:\Ruby21\lib\ruby\2.1.0\rubygems Otworzy to okno Eksploratora wewnątrz wskazanego przez nas katalogu.

Krok 3: Skopiuj nowy certyfikat zaufania

Teraz zlokalizuj katalog ssl_certs i skopiuj .plik pem uzyskaliśmy z poprzedniego kroku.

Zostanie wymieniony inne pliki GeoTrustGlobalCA.pem.

 5
Author: geniushkg,
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-05-03 16:11:46

Ten sam problem, ale z innym klejnotem tutaj:

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

Tymczasowe rozwiązanie: gem install builder -v '3.0.0' umożliwia kontynuowanie bundle install

 4
Author: Ludwig,
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
2012-04-20 15:16:54

Tak rozwiązujesz ten problem w systemie Windows:

Pobierz .następnie Ustaw plik SSL_CERT_FILE w wierszu polecenia

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

 4
Author: bkdir,
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-05-09 04:58:56

Dostaję nieco inny błąd, choć być może związany, na Ubuntu 12.04:

Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=unknown state: sslv3 alert handshake failure (https://d2chzxaqi4y7f8.cloudfront.net/gems/activesupport-3.2.3.gem)
An error occured while installing activesupport (3.2.3), and Bundler cannot continue.
Make sure that `gem install activesupport -v '3.2.3'` succeeds before bundling.

Dzieje się tak, gdy uruchamiam bundle install z source 'https://rubygems.org' w Gemfile.

To jest problem z OpenSSL na Ubuntu 12.04. Zobacz Rubygems issue # 319 .

Aby to naprawić, Uruchom apt-get update && apt-get upgrade Na Ubuntu 12.04, aby zaktualizować OpenSSL.

 3
Author: Jo Liss,
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
2012-05-03 17:47:43

Najprostsze rozwiązanie:

rvm pkg install openssl
rvm reinstall all --force
Voila!
 3
Author: user2886774,
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-16 14:57:10

Udało mi się wyśledzić to do faktu, że pliki binarne pobierane rvm nie grają ładnie z OpenSSL OS X, który jest stary i nie jest już używany przez OS.

Rozwiązaniem dla mnie było wymuszenie kompilacji podczas instalacji Ruby poprzez rvm:

rvm reinstall --disable-binary 2.2
 3
Author: Schrockwell,
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-18 19:20:12

Moja stała poprawka dla Windows:

  1. Pobierz plik CACert , Zapisz jako C:\ruby\ssl_certs\GlobalSignRootCA.pem z http://guides.rubygems.org/ssl-certificate-update/

  2. Utwórz zmienną systemową o nazwie " SSL_CERT_FILE ", ustawioną na C:\ruby\ssl_certs\GlobalSignRootCA.pem.

  3. Spróbuj ponownie: 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
 3
Author: Dio Phung,
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-19 18:47:23

Thx dla @ Alexander.Iljuszkin za:

gem update --system --source http://rubygems.org/

Po tym bundler nadal nie powiódł się i rozwiązaniem było:

gem install bundler

 3
Author: Sebastian Ax,
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-18 19:48:18

Miałem podobny błąd. Oto jak to rozwiązałem: w katalogu path sprawdź Gemfile. Edytuj źródło w pliku gemfile na http zamiast https i zapisz je. Może to spowodować zainstalowanie pakietu bundler bez problemu z certyfikatem SSL.l

 2
Author: ecksor5,
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-03-24 17:53:49

Na komputerze z systemem Windows sprawdź wersję gem za pomocą

gem --version

Następnie zaktualizuj swój gem w następujący sposób:

Pobierz plik w katalogu, do którego możesz później wskazać (np. korzeń Twojego twardego dysku C:)

Teraz, używając wiersza polecenia:

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

Teraz instalacja pakietu zakończy się sukcesem bez Błąd weryfikacji certyfikatu SSL.

Bardziej szczegółowa instrukcja jest tutaj

 2
Author: KBIIX,
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-06-17 00:11:43

To zadziałało dla mnie:

  • pobierz najnowszy gem na https://rubygems.org/pages/download
  • Zainstaluj gem za pomocą gem install --local [path to downloaded gem file]
  • zaktualizuj klejnoty za pomocą update_rubygems
  • sprawdź, czy jesteś na najnowszej wersji gem z gem --version
 1
Author: Guy Chauliac,
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-12 20:08:13

Musiałem ponownie zainstalować openssl:

brew uninstall --force openssl
brew install openssl
 1
Author: gabeodess,
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-11-04 19:37:49

Niedawno stanąłem przed tym problemem i postępowałem zgodnie z krokami opisanymi tutaj . Może być szansa, że nie wskazujesz WŁAŚCIWEGO certyfikatu OpenSSL. Po uruchomieniu:

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

I

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

Pakiet ukończony Run!

 1
Author: jshaf,
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-05 07:30:02

Pobierz rubygems-update-2.6.7.gem .

Teraz, używając wiersza polecenia:

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

Po tym, gem --version powinien zgłosić nową wersję aktualizacji.

Możesz teraz bezpiecznie odinstalować rubygems-update gem:

C:\>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7
 1
Author: Aswathy,
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 07:24:20

Aby zauważyć, jeśli pobierasz klejnoty ze źródła, któremu certyfikat SSL jest zaufany przez wewnętrzny urząd certyfikacji (lub łączysz się z zewnętrznym źródłem za pośrednictwem firmowego serwera proxy z inspekcją SSL), skieruj zmienną SSL_CERT_FILE env do łańcucha certyfikatów. Prawdopodobnie wymaga to tylko wyeksportowania certyfikatu głównego ze sklepu certyfikatów (Pęk kluczy systemowych w systemie macOS) do dostępnej lokalizacji z powłoki, tj.:

export SSL_CERT_FILE=~/RootCert.pem
 0
Author: mostlikelee,
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-07 13:40:40

Jeśli używasz rails-assets

Jeśli używasz https://rails-assets.org/ do zarządzania aktywami, żadne odpowiedzi Ci nie pomogą. Nawet konwersja na http nie pomoże.

Najprostszą poprawką jest użycie tego źródła, http://insecure.rails-assets.org. To zostało wspomniane w ich Strona główna.

 0
Author: Anwar,
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-04-30 10:52:22

Jedyną rzeczą, która zadziałała dla mnie na starszym systemie windows i ruby w wersji 1.9, jest pobranie pliku cacert z http://guides.rubygems.org/ssl-certificate-update/

A następnie uruchom poniższe polecenie przed uruchomieniem bundle install

bundle config --global ssl_ca_cert /path/to/file.pem
 0
Author: Aleksandar Pavić,
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-08-18 07:39:47