Kiedy uruchamiam bundle install
mój projekt Rails 3 na Centos 5.5, kończy się to 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ć klej 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ć?
source "https://rubygems.org''
Naprawiłem go, dodając plik Gemfile i uruchamiając „aktualizację klejnotów - system”. Więcej informacji znajdziesz tutaj .Odpowiedzi:
Aktualizacja
Teraz, kiedy mam karmę, która została wystarczająco wydobyta z tej odpowiedzi, wszyscy powinni wiedzieć, że to powinno być naprawione.
Re: przez Ownatik ponownie instalacja pakietu kończy się niepowodzeniem z błędem weryfikacji certyfikatu SSL
Moja odpowiedź jest nadal poprawna i pozostawiona poniżej w celach informacyjnych, jeśli to nie zadziała.
Szczerze mówiąc, najlepszym rozwiązaniem tymczasowym jest
przez użytkownika Ownatik
co to znaczy, znajduje się na górze
Gemfile
w katalogu zmian w aplikacji railssource 'https://rubygems.org'
do
source 'http://rubygems.org'
zwróć uwagę, że druga wersja to http zamiast http s
źródło
vendor
katalogu) na serwer, o którym pisałem w pytaniu.Latest version currently installed. Aborting.
jakieś inne pomysły?gem update --system
kończy się niepowodzeniem z dokładnie tym samym błędem certyfikatu: \Zamień źródło klejnotów ssl na non-ssl jako rozwiązanie tymczasowe:
źródło
Powodem są stare rubygemy. Musisz najpierw zaktualizować część systemową, używając źródła innego niż ssl:
gem update --system --source http://rubygems.org/
(tymczasowa aktualizacja części systemowej przy użyciu połączenia nie-ssl).Teraz jesteś gotowy do użycia
gem update
.źródło
Jeśli używasz komputera Mac i używasz najnowszej wersji RVM (~ 1.20), następujące polecenie działało dla mnie.
źródło
Ten problem powinien teraz zostać rozwiązany. Zaktualizuj rubygems (
gem update --system
), upewnij się, że openssl ma najnowszą wersję w twoim systemie operacyjnym, lub wypróbuj te wskazówki, że nadal nie działa: http://railsapps.github.com/openssl-certificate-verify-failed.htmlźródło
Rozwiązanie tymczasowe (jak nawiązywał do Ownatik):
Utwórz lub zmodyfikuj plik o nazwie .gemrc w ścieżce domowej, w tym w wierszu
:ssl_verify_mode: 0
Zapobiegnie to sprawdzeniu przez pakiet certyfikatów SSL klejnotów podczas próby ich zainstalowania.
W przypadku urządzeń * nix „ścieżka główna” oznacza
~/.gemrc
. Możesz również utworzyć,/etc/gemrc
jeśli wolisz. W systemie Windows XP „ścieżka główna” oznaczac:\Documents and Settings\All Users\Application Data\gemrc
. W systemie Windows 7C:\ProgramData\gemrc
źródło
%USERPROFILE%\.gemrc
jest również wyszukiwane przezgem
w systemie Windows.~/.gemrc
::sources: - http://rubygems.org
W systemie Windows7 możesz pobrać plik cacert.pem stąd i ustawić zmienną środowiskową SSL_CERT_FILE na ścieżkę, w której przechowujesz certyfikat, np.
lub możesz ustawić zmienną w skrypcie w ten sposób
ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"
Zastąp <nazwa użytkownika> własną nazwą użytkownika.
źródło
Prawdziwe rozwiązanie tego problemu, jeśli używasz RVM:
gem update --system
rvm osx-ssl-certs update all
Hat tip do tej wskazówki na temat projektu RailsApps !
źródło
rvm osx-ssl-certs update all
działało dobrze dla mnie. Nie musiałem robić kroku 1.Możesz pobrać listę certyfikatów CA ze strony curl pod adresem http://curl.haxx.se/ca/cacert.pem
Następnie ustaw zmienną środowiskową SSL_CERT_FILE, aby poinformować Ruby, aby jej używała. Na przykład w systemie Linux:
(Odniesienie: https://gist.github.com/fnichol/867550 )
źródło
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:
Aby uzyskać więcej informacji, oto link, w którym znalazłem rozwiązanie.
http://railsapps.github.com/openssl-certificate-verify-failed.html
BTW, nie musiałem dotykać moich certyfikatów na Ubuntu.
źródło
cacert.pem
lub$rvm_path/usr/ssl
) jest rzeczywiście właściwą drogą.:ssl_verify_mode: 0
które otwierają problemy), w przeciwieństwie do jednego z 3 poniższych rozwiązań, które są dobrym sposobem na rozwiązanie tego problemu.Zostało to naprawione
http://guides.rubygems.org/ssl-certificate-update/
Po wydaniu RubyGems 2.6.x możesz ręcznie zaktualizować tę wersję.
Pobierz https://rubygems.org/downloads/rubygems-update-2.6.7.gem
Pobierz plik w katalogu, do którego możesz później wskazać (np. Katalog główny dysku twardego C :)
Teraz za pomocą wiersza polecenia:
Następnie gem --version powinien zgłosić nową wersję aktualizacji.
Możesz teraz bezpiecznie odinstalować klejnot aktualizacji rubygems:
źródło
Podano tutaj prostą instrukcję kopiowania wklej dotyczącą pliku .pem
https://gist.github.com/luislavena/f064211759ee0f806c88
W przypadku weryfikacji certyfikatu nie powiodło się
źródło
ten sam problem, ale z innym klejnotem tutaj:
rozwiązanie tymczasowe:
gem install builder -v '3.0.0'
umożliwia kontynuacjębundle install
źródło
Najprostsze rozwiązanie:
Voila!
źródło
Oto jak rozwiązać ten problem w systemie Windows:
pobierz plik .perm, a następnie ustaw plik SSL_CERT_FILE w wierszu polecenia
https://gist.github.com/fnichol/867550
źródło
Moja stała poprawka dla systemu Windows:
Pobierz CACert , zapisz
C:\ruby\ssl_certs\GlobalSignRootCA.pem
od http://guides.rubygems.org/ssl-certificate-update/Utwórz zmienną systemową o nazwie „ SSL_CERT_FILE ”, ustaw na
C:\ruby\ssl_certs\GlobalSignRootCA.pem
.Spróbuj ponownie
gem install bundler
:źródło
W systemie Ubuntu 12.04 pojawia się nieco inny błąd, choć być może związany:
Zdarza się to, gdy biegnę
bundle install
zsource 'https://rubygems.org'
Gemfile.Jest to problem z OpenSSL na Ubuntu 12.04. Zobacz numer Rubygems nr 319 .
Aby to naprawić, uruchom
apt-get update && apt-get upgrade
Ubuntu 12.04, aby zaktualizować OpenSSL.źródło
Udało mi się to wyśledzić do faktu, że pliki binarne, które
rvm
pobierają, nie działają dobrze z OpenSSL OS X, który jest stary i nie jest już używany przez system operacyjny.Rozwiązaniem było wymuszenie kompilacji podczas instalacji Ruby poprzez
rvm
:źródło
Dziękujemy @ Alexander.Iljushkin za:
gem update --system --source http://rubygems.org/
Po tym pakiecie nadal nie powiodło się, a rozwiązaniem tego było:
gem install bundler
źródło
Otrzymałem podobny błąd. Oto jak to rozwiązałem: w swoim katalogu ścieżek sprawdź Gemfile. Edytuj źródło w pliku gem do http zamiast https i zapisz go. Może to spowodować zainstalowanie pakietu bez wydania certyfikatu SSL. L
źródło
W przypadku komputera z systemem Windows sprawdź swoją wersję klejnotów za pomocą
Następnie zaktualizuj swój klejnot w następujący sposób:
Pobierz plik w katalogu, do którego możesz później wskazać (np. Katalog główny dysku twardego C :)
Teraz za pomocą wiersza polecenia:
Teraz instalacja pakietu zakończy się powodzeniem bez błędu weryfikacji certyfikatu SSL.
Bardziej szczegółowa instrukcja znajduje się tutaj
źródło
To działało dla mnie:
gem install --local [path to downloaded gem file]
update_rubygems
gem --version
źródło
Musiałem ponownie zainstalować openssl:
źródło
Niedawno spotkałem się z tym problemem i wykonałem kroki opisane tutaj . Możliwe, że nie wskazujesz odpowiedniego certyfikatu OpenSSL. Po bieganiu:
i
pakiet został ukończony!
źródło
Pobierz rubygems-update-2.6.7.gem .
Teraz za pomocą wiersza polecenia:
Następnie
gem --version
powinien zgłosić nową wersję aktualizacji.Możesz teraz bezpiecznie odinstalować klejnot aktualizacji rubygems:
źródło
Uwaga: jeśli pobierasz klejnoty ze źródła, któremu certyfikat SSL jest zaufany przez wewnętrzny urząd certyfikacji (lub łączysz się ze źródłem zewnętrznym za pośrednictwem firmowego serwera proxy z kontrolą SSL), skieruj zmienną env SSL_CERT_FILE na łańcuch certyfikatów . Najprawdopodobniej wymaga to tylko wyeksportowania certyfikatu głównego z magazynu certyfikatów (pęku kluczy systemowych w systemie macOS) do dostępnej lokalizacji z powłoki, tj .:
źródło
Jeśli używasz
rails-assets
Jeśli używałeś
https://rails-assets.org/
do zarządzania swoimi zasobami, żadne odpowiedzi ci nie pomogą. Nawet konwersja nahttp
nie pomoże.Najprostszą metodą jest użycie tego źródła zamiast
http://insecure.rails-assets.org
. Zostało to wspomniane na ich stronie głównej .źródło
Jedyną rzeczą, która działała dla mnie w starszym systemie Windows i wersji Ruby 1.9 jest pobranie pliku cacert z http://guides.rubygems.org/ssl-certificate-update/
Następnie uruchom polecenie poniżej przed uruchomieniem instalacji pakietu
źródło