Próbuję zrobić samouczek Michaela Hartla. Kiedy próbuję zainstalować szyny 3.2.14 w moim zestawie gem, pojawia się następujący problem:
$ szyny instalacyjne gem -v 3.2.14
BŁĄD: nie można znaleźć prawidłowego „szyny” klejnotu (= 3.2.14), oto dlaczego:
Nie można pobrać danych z https://rubygems.org/ - zwrócono SSL_connect = 1 errno = 0 stan = SSLv3 odczytać certyfikat serwera B: weryfikacja certyfikatu nie powiodła się ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
Po Googlingu odkryłem, że mogę użyć źródła innego niż SSL dla rubygemów, więc uruchomiłem:
sudo gem sources -a http://rubygems.org
Potem, kiedy próbowałem ponownie zainstalować szyny, udało się. Nadal jednak mam powyższy problem, ale jako ostrzeżenie:
OSTRZEŻENIE: Nie można pobrać danych z „ https://rubygems.org/ ”: Zwrócono SSL_connect = 1 errno = 0 stan = SSLv3 odczytać certyfikat serwera B: weryfikacja certyfikatu nie powiodła się ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )
Jak mogę całkowicie usunąć to ostrzeżenie / błąd?
Używam następujących:
- rvm 1.22.15
- ruby 2.0.0p247 (2013-06-27 wersja 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
źródło
2.0.*
) wersjachrubygems
. Spróbuj zaktualizować do najnowszej wersji Rubygems:gem update --system
a następnie uruchom ponowniegem install
.gem sources -r https://rubygems.org/
działało dla mnie uruchamianie (w zakresie usuwania ostrzeżenia).Odpowiedzi:
Dla użytkowników RVM i OSX
Upewnij się, że używasz najnowszego rvm:
Następnie możesz zrobić dwie rzeczy:
Zaktualizuj certyfikaty:
Zaktualizuj rubygemy:
Dla użytkowników spoza RVM
Znajdź ścieżkę do certyfikatu:
Wygeneruj certyfikat:
Cały kod: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs
Dla użytkowników innych niż OSX
Zaktualizuj pakiet
ca-certificates
. (w starych systemach może nie być dostępny - nie używaj starego systemu, który nie otrzymuje już aktualizacji zabezpieczeń)Uwaga systemu Windows
Ruby Installer buduje dla okna są przygotowywane przez Luis Lavena i droga do certyfikatów będzie pokazywać coś takiego
C:/Users/Luis/...
czeku https://github.com/oneclick/rubyinstaller/issues/249 więcej szczegółów i tej odpowiedzi https://stackoverflow.com / a / 27298259/497756 dla poprawki.źródło
rvm rubygems latest
spowodowało błąd narzekań na brak sum kontrolnych. Jednak sprawy też zaczęły działać bez tego ... najwyraźniej mógłbyś to zmusić,--verify-downloads 1
gdybyś musiał. Wszelkie pomysły, dlaczego tak może być? Próbowano pobrać wersjęrubygems-2.1.6
head
wersji istable
wkrótce wypuszczę .permission denied: /private/etc/ssl/cert.pem
Najnowsze ustalenia ...
https://gist.github.com/luislavena/f064211759ee0f806c88
Co najważniejsze ... pobierz https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Dowiedz się, gdzie go przykleić
Następnie po prostu skopiuj plik .pem do ../2.1.0/rubygems/ssl_certs/ i kontynuuj swoją działalność.
źródło
.pem
rozszerzeniem, nie.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) Umieściłem plikC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) Uruchamiamgem install susy
i otrzymuję ten sam błądUnable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
gem install --local C:\Downloads\rubygems-update-2.4.5.gem
Dla użytkowników systemu Windows
Idź do linku http://rubygems.org/pages/download
źródło
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:
AKTUALIZACJA:
Jak stwierdza mpapis, należy tego używać tylko jako tymczasowego obejścia. Mogą wystąpić pewne obawy dotyczące bezpieczeństwa, jeśli uzyskujesz dostęp do RubyGems za pośrednictwem źródła innego niż SSL.
Gdy obejście nie będzie już potrzebne, należy przywrócić źródło SSL:
źródło
sudo gem sources -r https://rubygems.org/
isudo gem sources -r http://rubygems.org/
. Zwróć uwagę na końcowe/
./
, to również powinno zostać usunięte wraz z końcowym/
.W systemie Windows musisz użyć
HTTP
źródła do aktualizacji,gem
a następnie powrócić do używaniaHTTPS
.Edycja: Ostrzeżenie Nie jestem pewien, czy jest to bezpieczne . Czy ktoś wie, czy paczki ruby są podpisane? Przyjęta odpowiedź wygląda na lepsze rozwiązanie.
źródło
gem sources -l
widzieć źródła przed i po aktualizacji systemu. Jeśli aktualizacja się nie powiedzie, podaj numer wersji zaraz po --systemie. Zobacz rubygems.org/gems/rubygems-update/versions lub zapytaj współpracownika o jakiegem -v
raporty.Dla użytkowników systemu Windows (i może innych)
Rubygems.org ma 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 Przyczyną problemu jest przejście na rubygems.org na bezpieczniejszy certyfikat SSL (SHA-2, który użyj szyfrowania 256-bitowego). Narzędzie wiersza polecenia rubygems łączy odwołanie do poprawnego certyfikatu. Dlatego samych rubygemów nie można zaktualizować przy użyciu starszej wersji rubygemów. Rubygemy należy najpierw zaktualizować ręcznie.
Najpierw dowiedz się, jakie masz rubygemy:
W zależności od tego, czy masz wersję 1.8.x, 2.0.x czy 2.2.x, musisz pobrać klejnot aktualizacji o nazwie „rubygems-update-XYZgem”, gdzie XYZ jest potrzebną wersją. Uruchamianie 1.8.x: pobieranie: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Uruchamianie 2.0.x: pobieranie: https://github.com/rubygems/rubygems/releases/tag/v2 .0.15 Uruchamianie 2.2.x: pobierz: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Zainstaluj klejnot aktualizacji:
Uruchom aktualizację klejnotu:
Sprawdź, czy rubygemy zostały zaktualizowane:
Odinstaluj klejnot aktualizacji:
W tym momencie możesz być w porządku. Możliwe jednak, że nie masz najnowszego pliku klucza publicznego dla nowego certyfikatu. Aby to zrobić:
Pobierz najnowszy certyfikat (obecnie AddTrustExternalCARoot-2048.pem) ze strony https://rubygems.org/pages/download . Wszystkie certyfikaty znajdują się również na stronie : https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Dowiedz się, gdzie to umieścić:
Umieść ten plik w katalogu „rubygems \ ssl_certs” w tej lokalizacji.
Zgodnie z zatwierdzaniem rubygemów certyfikaty są przenoszone do bardziej szczegółowych katalogów. Dlatego obecnie oczekuje się, że certyfikat (AddTrustExternalCARoot-2048.pem) będzie podążał następującą ścieżką
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
źródło
Spróbuj użyć strony źródłowej klejnotów, tj. Rubygems.org. Użyj http zamiast https. Ta metoda nie wymaga żadnej pracy, takiej jak instalacja certyfikatów i tym podobne.
Przykład -
To działa, ale jest jedno zastrzeżenie.
Klejnot jest zainstalowany, ale dokumentacja nie jest spowodowana błędami certyfikatu. Oto błąd, który otrzymuję
źródło
Bieganie
gem update --system
działało dla mnieźródło
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Upewnij się, że zegar systemowy jest poprawny
Ten dokładny błąd przytrafił mi się dzisiaj na maszynie wirtualnej Ubuntu działającej na VirtualBox. Wypróbowałem większość przedstawionych powyżej rozwiązań, zanim zauważyłem, że powróciłem do bardzo starego stanu zawieszenia i mój zegar był wyłączony przez wiele dni.
Aktualizacja zegara natychmiast rozwiązała mój problem. Oto polecenie, którego użyłem w moim przypadku:
usługa sudo ntp stop && sudo ntpdate pool.ntp.org && usługa sudo ntp start
źródło
Po prostu odinstalowanie i ponowne zainstalowanie openssl z homebrew rozwiązało ten problem.
brew uninstall --force openssl
brew install openssl
źródło
brew uninstall --ignore-dependencies openssl
(co jest odpowiednikiem starejforce
flagi)Dla użytkowników Fedory
Zaktualizuj
cert.pem
do najnowszego pliku udostępnionego przez cURL: http://curl.haxx.se/ca/cacert.pemźródło
Jeśli używasz systemu Windows, otwórz https://rubygems.org/ w przeglądarce internetowej.
Kliknij informacje dotyczące bezpieczeństwa i zaimportuj certyfikat. Najważniejsze jest to, że Twój łańcuch certyfikacji jest nieaktualny i musisz dodać ten nowy certyfikat. Pamiętaj, że nie stanowi to naruszenia bezpieczeństwa, o ile możesz zweryfikować certyfikat jako zaufany.
źródło
W moim przypadku certyfikaty Ubuntu CA były nieaktualne. Naprawiłem to, uruchamiając:
źródło
Podejście / jeden wiersz, które można zautomatyzować, aby pobierać klejnoty za pomocą HTTP zamiast HTTPS:
źródło
Szczególnym przypadkiem RubyGems (narzędzie wiersza poleceń) jest to, że wymaga spakowania w swoim kodzie certyfikatów zaufania, które pozwalają RubyGems na ustanowienie połączenia z serwerami, nawet gdy podstawowy system operacyjny nie jest w stanie zweryfikować ich tożsamości.
Jeszcze kilka miesięcy temu ten certyfikat był dostarczany przez jeden urząd certyfikacji, ale nowszy certyfikat jest dostarczany przez inny.
Z tego powodu istniejące instalacje RubyGems musiałyby zostać zaktualizowane przed zmianą certyfikatu i dać wystarczająco dużo czasu na rozpowszechnienie się zmiany (i ludzi na aktualizację)
Każdy może znaleźć swoje rozwiązanie, wykonując proste kroki podane w linku poniżej
https://gist.github.com/luislavena/f064211759ee0f806c88
źródło
Próbować
Mam nadzieję, że to rozwiązuje problem.
źródło
apt install ruby
.ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Pobierz plik cacert.pem z http://curl.haxx.se/ca/cacert.pem . Zapisz ten plik w C: \ RailsInstaller \ cacert.pem.
Teraz powiadom Ruby o swoim pakiecie urzędu certyfikacji, ustawiając SSL_CERT_FILE. Aby ustawić to w bieżącej sesji wiersza polecenia, wpisz:
ustaw SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem
źródło
Miałem ten sam problem podczas próby zainstalowania klejnotu ogórkowego. Zauważyłem jednak, że klejnot bundlera jest już zainstalowany z Ruby 2.0. Utworzyłem Gemfile.rb w folderze projektu z wymaganymi klejnotami i wykonałem te kroki
Zainstalowano wszystkie wymagane klejnoty.
źródło
W przypadku Illumos / Solaris korzystających z OpenCSW pkgutil:
Zainstaluj certyfikaty CSW przed „instalacją klejnotów”
Jeśli używasz zestawu ruby, który nie pochodzi z OpenCSW, Twoja wersja ruby może oczekiwać, że znajdzie plik certyfikatu w innym miejscu. W tym przypadku po prostu dowiązałem symbolicznie plik /etc/opt/csw/ssl/cert.pem OpenCSW do oczekiwanego miejsca.
Sprawdź, gdzie ruby spodziewa się go znaleźć:
Następnie, jeśli istnieje rozbieżność, połącz ją:
źródło
Lub może być zapobiegany przez zaporę ogniową taką jak ja. Spróbuj tego:
sudo gem install --http-proxy http: // localhost: port cocoapods -V
źródło
Dla użytkownika systemu Windows:
Po pomyślnym zainstalowaniu Ruby 2.2.3 (+ Rubygems 2.5.1) na maszynie testowej z dostępem do Internetu, miałem ten błąd SSL, gdy instalowałem program pakujący na maszynie produkcyjnej w sieci.
Ponieważ miałem ograniczenia dostępu do sieci i nie było sposobu, aby zmienić ustawienia dostępu SSL i na podstawie komunikatów o błędach, wykonałem poniższe kroki, aby móc zakończyć instalację pakietu (może to zabrzmieć szalenie, ale to pracował ...).
Za pośrednictwem komputera z nieograniczonym dostępem do Internetu pobrano następujące pliki:
Dodałem te pliki na serwerze intranetowym, zachowując strukturę folderów odnośników powyżej:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
bundler-1.11.2.gem
Następnie dodałem mój intranet, aby uzyskać dostęp do źródła klejnotów:
Z sukcesem uruchomiłem „pakiet instalacyjny klejnotów” po instalacji, wystarczyło usunąć mój intranet klejnotu:
Mam nadzieję, że przyda się w każdej podobnej sytuacji ....
źródło
Jako użytkownik systemu Windows 10 śledziłem odpowiedź Dheerendry i pewnego dnia zadziałało to dla mnie. Następnego dnia ponownie doświadczyłem problemu i jego poprawka nie zadziałała. Dla mnie poprawką była aktualizacja
bundler
:gem update bundler
Wierzę, że moja wersja
bundler
miała więcej niż kilka miesięcy.źródło
Upewnij się, że zainstalowałeś Ruby z opcją --disable-binary , jeśli nie, odinstaluj go i zainstaluj ponownie z tą opcją.
więcej informacji tutaj
źródło
Odpowiedź nie jest już ważna. Ponieważ w tej chwili napotkałem problem ze starszym Windows Ruby, opublikuję odpowiedź.
Kiedy chciałem zainstalować klejnot aktywny:
Poniższe kroki wymagają skopiowania tylko certyfikatów z nowszych okien ruby. Weź najnowszy rubin (lub przynajmniej Ruby 2.4.0 ) i wykonaj następujące czynności:
skopiuj 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
do miejsca docelowego (ponownie dostosuj do potrzeb):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
źródło