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
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:
-
Aktualizacja certyfikatów:
rvm osx-ssl-certs update all
-
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.
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.pemDowiedzieć 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.
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
- Pobierz najnowszy plik zip (w moim przypadku 2.4.5)
- rozpakuj to
- Uruchom " Ruby setup.rb " w rozpakowanym folderze
- Teraz uruchom polecenie Gem install
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
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.
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
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)
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
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
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
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
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.
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
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
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
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.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
- Przejdź do folderu projektu
- Type bundle install
Wszystkie wymagane klejnoty zainstalowane.
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
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
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:
- spec.4.8.gz ( http://rubygems.global.ssl.fastly.net/spec.4.8.gz )
- latest_specs.4.8.gz ( http://rubygems.global.ssl.fastly.net/latest_specs.4.8.gz )
- bundler-1.11.2.gemspec.rz ( http://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/bundler-1.11.2.gemspec.rz )
- bundler-1.11.2.gem ( http://rubygems.global.ssl.fastly.net/gems/bundler-1.11.2.gem )
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....
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
bundler
miała ponad kilka miesięcy.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
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
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
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