it-swarm.com.de

SSL-Fehler Bei der Installation von rubygems, Daten können nicht von "https://rubygems.org/" abgerufen werden.

Ich versuche, das Michael Hartl-Tutorial zu machen. Wenn ich versuche, Rails 3.2.14 in meinem Gemset zu installieren, erhalte ich folgendes Problem:

$ gem installiere Rails -v 3.2.14

FEHLER: Konnte kein gültiges Juwel 'Rails' (= 3.2.14) finden, hier ist der Grund:

Daten können nicht von https://rubygems.org/ heruntergeladen werden. - SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3-Server-Zertifikat lesen B: Zertifikatüberprüfung fehlgeschlagen ( https://s3.amazonaws.com/production .s3.rubygems.org/specs.4.8.gz )

Nach dem Googeln fand ich heraus, dass ich eine Nicht-SSL-Quelle für Rubygems verwenden konnte.

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

Als ich dann erneut versuchte, Rails zu installieren, war es erfolgreich. Ich habe das Thema aber trotzdem als Warnung erhalten:

WARNUNG: Daten aus ' https://rubygems.org/ ' können nicht abgerufen werden: SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3-Server-Zertifikat lesen B: Zertifikatprüfung fehlgeschlagen ( https: //s3.amazonaws .com/production.s3.rubygems.org/specs.4.8.gz )

Wie kann ich diese Warnung vollständig entfernen?

Ich verwende folgendes:

  • rvm 1.22.15
  • Ruby 2.0.0p247 (2013-06-27, Revision 41674) [x86_64-darwin12.3.0]
  • OSX 10.8.5
255

Für RVM- und OSX-Benutzer

Stellen Sie sicher, dass Sie die neueste Version von rvm verwenden:

rvm get stable

Dann können Sie zwei Dinge tun:

  1. Zertifikate aktualisieren:

    rvm osx-ssl-certs update all
    
  2. Rubygems aktualisieren:

    rvm rubygems latest
    

Für Nicht-RVM-Benutzer

Suchpfad für das Zertifikat:

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

Zertifikat generieren:

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

Der gesamte Code: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs


Für Nicht-OSX-Benutzer

Stellen Sie sicher, dass Sie das Paket ca-certificates aktualisieren. (auf alten Systemen ist es möglicherweise nicht verfügbar - verwenden Sie kein altes System, das keine Sicherheitsupdates mehr erhält)

Windows Hinweis

Die Ruby Installer Builds für Windows werden von Luis Lavena vorbereitet, und der Pfad zu den Zertifikaten zeigt Folgendes: C:/Users/Luis/... check https://github.com/oneclick/rubyinstaller/issues/249 Weitere Informationen und diese Antwort https://stackoverflow.com/a/27298259/497756 für Fix.

370
mpapis

Neueste Erkenntnisse ...

https://Gist.github.com/luislavena/f064211759ee0f806c88

Am wichtigsten ... download https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

Überlegen Sie sich, wo Sie es halten sollen

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

Dann kopieren Sie einfach die .pem-Datei in ../2.1.0/rubygems/ssl_certs/ und machen Sie weiter mit Ihrem Geschäft.

241
beauXjames

Für Windows-Benutzer

Gehe zu Link http://rubygems.org/pages/download

  1. Lade die neueste Zip-Datei herunter (In meinem Fall 2.4.5)
  2. Entpacken Sie es 
  3. führen Sie "Ruby setup.rb" im entpackten Ordner aus
  4. führen Sie nun den Installationsbefehl gem aus
175

Wenn Sie die Nicht-SSL-Quelle verwenden möchten, entfernen Sie zunächst die HTTPS-Quelle und fügen Sie dann die HTTP-Quelle hinzu:

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

UPDATE:

Wie von mpapis angegeben, sollte dies nur als temporärer Workaround verwendet werden. Wenn Sie über die Nicht-SSL-Quelle auf RubyGems zugreifen, kann es einige Sicherheitsbedenken geben.

Sobald die Problemumgehung nicht mehr erforderlich ist, sollten Sie die SSL-Quelle wiederherstellen:

Sudo gem sources -r http://rubygems.org
Sudo gem sources -a https://rubygems.org
51
eduardo

Unter Windows müssen Sie HTTP source verwenden, um gem zu aktualisieren, und dann wieder HTTPS zu verwenden. 

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: Warnung Ich bin nicht sicher, ob dies sicher ist . Weiß jemand, ob Ruby-Pakete signiert sind? Die akzeptierte Antwort sieht nach einer besseren Lösung aus.

15
roo2

Für Windows-Benutzer (und möglicherweise andere)

Rubygems.org hat einen Leitfaden, in dem nicht nur beschrieben wird, wie dieses Problem behoben werden kann, sondern auch, warum so viele Leute es haben: SSL Certificate Update Der Grund für das Problem ist, dass rubygems.org auf einen sichereren Server umgestellt hat SSL-Zertifikat (SHA-2, das 256-Bit-Verschlüsselung verwendet). Das Befehlszeilenwerkzeug rubygems bündelt den Verweis auf das richtige Zertifikat. Daher können Rubygems selbst nicht mit einer älteren Version von Rubygems aktualisiert werden. Rubygems müssen zuerst manuell aktualisiert werden.

Finden Sie zuerst heraus, welche Rubygems Sie haben:

rubygems –v

Abhängig davon, ob Sie eine 1.8.x, 2.0.x oder 2.2.x haben, müssen Sie ein Update-Juwel namens „rubygems-update-XYZgem“ herunterladen, wobei XYZ die Version ist, die Sie benötigen Ausführen von 1.8 .x: download: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Ausführen von 2.0.x: download: https://github.com/rubygems/ rubygems/versions/tag/v2.0.15 Ausführen von 2.2.x: download: https://github.com/rubygems/rubygems/releases/tag/v2.2.3

Update-Juwel installieren: 

gem install –-local full_path_to_the_gem_file

Update-Juwel ausführen:

update_rubygems --no-ri --no-rdoc

Überprüfen Sie, ob die Rubygems aktualisiert wurden:

rubygems –v

Update gem deinstallieren:

gem uninstall rubygems-update -x

An diesem Punkt können Sie in Ordnung sein. Möglicherweise verfügen Sie jedoch nicht über die neueste öffentliche Schlüsseldatei für das neue Zertifikat. Um dies zu tun:

Laden Sie das neueste Zertifikat herunter (derzeit AddTrustExternalCARoot-2048.pem) Von https://rubygems.org/pages/download . Alle Zertifikate befinden sich auch unter: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs

Finden Sie heraus, wo Sie es ablegen können:

gem which rubygems

Legen Sie diese Datei an dieser Stelle im Verzeichnis "rubygems\ssl_certs" ab.

Gemäß rubygems commit werden die Zertifikate in spezifischere Verzeichnisse verschoben. Daher wird erwartet, dass sich das Zertifikat (AddTrustExternalCARoot-2048.pem) derzeit auf dem folgenden Pfad befindet lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

10
John Pankowicz

Versuchen Sie, die Quell-Website für die Edelsteine ​​zu verwenden, d. H. Rubygems.org. Verwenden Sie http anstelle von https. Diese Methode beinhaltet keine Arbeit wie das Installieren von Zertifikaten und all das.

Beispiel - 

gem install typhoeus --source http://rubygems.org

Das funktioniert, aber es gibt eine Einschränkung. 

Das Juwel ist installiert, aber die Dokumentation beruht nicht auf Zertifizierungsfehlern. Hier ist der Fehler, den ich bekomme 

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)
8
Borat Sagdiyev

Laufen gem update --system hat für mich funktioniert

7
user3408293

Durch die einfache Deinstallation und Neuinstallation von openssl mit Homebrew wurde dieses Problem für mich gelöst.

brew uninstall --force openssl

brew install openssl

4
ntj

Wenn Sie Windows verwenden, öffnen Sie https://rubygems.org/ mit dem Internet Explorer.

Klicken Sie auf Sicherheitsinformationen und importieren Sie das Zertifikat. Unter dem Strich ist Ihre Zertifizierungskette veraltet und Sie müssen dieses neue Zertifikat hinzufügen. Beachten Sie, dass dies keine Sicherheitsverletzung ist, solange Sie das Zertifikat als vertrauenswürdig prüfen können.

3
Paulo Fidalgo

Für Fedora-Benutzer

Aktualisieren Sie den cert.pem auf die neueste Datei, die von cURL bereitgestellt wird: 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
ENDOH takanao

Stellen Sie sicher, dass Ihre Systemuhr korrekt ist

Dieser genaue Fehler ist mir heute auf einer virtuellen Ubuntu-Maschine auf VirtualBox passiert. Ich habe die meisten der oben gezeigten Lösungen ausprobiert, bevor ich bemerkte, dass ich aus einem sehr alten suspendierten Zustand wieder aufgenommen hatte und meine Uhr um viele Tage ausgeschaltet war.

Durch das Aktualisieren der Uhr wurde mein Problem sofort behoben. Hier ist der Befehl, den ich in meinem Fall verwendet habe:

Sudo-Dienst ntp stop && Sudo ntpdate pool.ntp.org && Sudo-Dienst ntp start

3
dbrewer

In meinem Fall waren die Ubuntu CA-Zertifikate nicht mehr aktuell. Ich habe es durch Laufen behoben:

 Sudo update-ca-certificates
2
maniek

Versuchen 

gem update --system

Hoffe, es löst das Problem.

1
puneet18

Der besondere Fall von RubyGems (dem Befehlszeilentool) besteht darin, dass die Vertrauenszertifikate innerhalb seines Codes gebündelt werden müssen, sodass RubyGems eine Verbindung mit den Servern herstellen kann, selbst wenn das Basisbetriebssystem die Identität dieser nicht überprüfen kann.

Bis vor wenigen Monaten wurde dieses Zertifikat von einer Zertifizierungsstelle bereitgestellt, neuere Zertifikate werden jedoch von einer anderen Zertifizierungsstelle bereitgestellt.

Aus diesem Grund müssten vorhandene Installationen von RubyGems vor dem Wechsel des Zertifikats aktualisiert werden und genügend Zeit für die Verbreitung der Änderung (und für die Aktualisierung) geben.

Jeder kann seine Lösung finden, indem er die einfachen Schritte ausführt, die im nachstehenden Link angegeben sind

https://Gist.github.com/luislavena/f064211759ee0f806c88

1
ImranNaqvi

Ich hatte das gleiche Problem, als ich versuchte, den Gurkenedel zu installieren. Ich bemerkte jedoch, dass der Bundler gem bereits mit Ruby 2.0 installiert war ..... Ich erstellte im Projektordner eine Gemfile.rb mit den erforderlichen Gems und folgte diesen Schritten

  1. Navigieren Sie zum Projektordner
  2. Typ Paket-Installation

Alle benötigten Edelsteine ​​installiert.

0
user3037926

Für Windows Benutzer:

Nach der erfolgreichen Installation von Ruby 2.2.3 (+ rubygems 2.5.1) auf einer Testmaschine mit Zugang zum Internet hatte ich diesen SSL-Fehler, als ich Bundler auf einer Produktionsmaschine innerhalb des Netzwerks installierte.

Da ich Netzwerkzugriffsbeschränkungen hatte und es keine Möglichkeit gab, die Einstellungen für den SSL-Zugriff zu ändern, und basierend auf den Fehlernachrichten habe ich die folgenden Schritte ausgeführt, um die Installation des Bundlers abzuschließen. __ , aber es hat funktioniert ...).

Laden Sie die folgenden Dateien über einen Computer mit uneingeschränktem Zugriff auf das Internet herunter:

Ich habe diese Dateien auf einem Intranetserver hinzugefügt, wobei die Ordnerstruktur der obigen Links beibehalten wurde:

  • $ 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

Dann habe ich mein Intranet für den Zugriff auf die Gem-Quelle hinzugefügt:

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

Ich habe mit dem Erfolg den "gem install bundler" nach der Installation ausgeführt, alles was ich brauchte, war mein Intranet vom gem zu entfernen:

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

Ich hoffe, dass dies in einer ähnlichen Situation nützlich ist ....

0

Ansatz/Einzeiler, der automatisiert werden kann, um Edelsteine ​​über HTTP anstelle von HTTPS herunterzuladen:

printf -- '---\n:sources:\n- http://rubygems.org\n' | tee ~/.gemrc
0
laimison

Oder kann durch eine Firewall wie ich verhindert werden. Versuche dies:

Sudo gem installieren --http-proxy http: // localhost: port cocoapods -V

0
Victor Choy

Für Illumos/Solaris mit OpenCSW pkgutil:

Installieren Sie CSW-Zertifikate vor der Installation von 'gem'.

pkgutil -yi CSWcacertificates

Wenn Sie ein Ruby-Kit verwenden, das nicht von OpenCSW stammt, kann Ihre Ruby-Version erwarten, die Zertifikatsdatei an einem anderen Ort zu finden. In diesem Fall habe ich einfach die /etc/opt/csw/ssl/cert.pem von OpenCSW mit dem erwarteten Ort verknüpft.

Prüfen Sie, wo Ruby erwartet, es zu finden:

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

Wenn es eine Diskrepanz gibt, verknüpfen Sie es: 

ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf
0
Jacob

Stellen Sie sicher, dass Sie Ruby mit der Option --disable-binary installiert haben. Wenn nicht, deinstallieren Sie es und installieren Sie es neu.

mehr Infos hier 

0
Feuda

Als Windows 10-Benutzer folgte ich Dheerendras answer und es funktionierte für mich eines Tages. Am nächsten Tag erlebte ich das Problem erneut und sein Fix funktionierte nicht. Für mich bestand das Update darin, bundler mit zu aktualisieren:

gem update bundler

Ich glaube, meine Version von bundler war mehr als ein paar Monate alt.

0
Alexander

Die Antwort ist nicht mehr gültig. Da ich jetzt auf das Problem mit älteren Windows Ruby gestoßen bin, werde ich die Antwort posten. 

Als ich einen Activesupport-Edelstein installieren wollte:

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)

Die folgenden Schritte müssen nur die Zertifikate aus neueren Fenstern Ruby ..__ kopieren. Nehmen Sie den neuesten Ruby (oder zumindest Ruby 2.4.0) und führen Sie folgende Schritte aus:

kopieren Sie Zertifikate aus diesen Verzeichnissen (passen Sie sich Ihren Bedürfnissen an):
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

zum Zielort (wieder an das anpassen, was Sie brauchen):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\Ruby\2.3.0\rubygems\ssl_certs

0
tukan