it-swarm.com.de

Die Bundle-Installation schlägt mit einem Fehler bei der Überprüfung des SSL-Zertifikats fehl

Wenn ich bundle install für mein Rails 3-Projekt auf Centos 5.5 schlägt mit einem Fehler fehl:

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.

Wenn ich versuche, den Edelstein manuell zu installieren (von gem install multi_json -v '1.3.2') Es klappt. Das gleiche Problem tritt bei mehreren anderen Edelsteinen auf. Ich verwende RVM (1.12.3), Ruby 1.9.2, Bundler 1.1.3.

Wie man es repariert?

261
mrzasa

Update

Jetzt, wo ich Karma genug von dieser Antwort erhalten habe, sollte jeder wissen, dass dies hätte behoben werden müssen.

erneut: über Ownatik Die Installation des Bundles schlägt mit einem Fehler bei der Überprüfung des SSL-Zertifikats fehl

gem update --system

Meine Antwort ist immer noch richtig und wird unten als Referenz hinterlassen, falls dies für Sie nicht funktioniert.


Ehrlich gesagt ist die beste vorübergehende Lösung zu

[...] Verwenden Sie die Nicht-SSL-Version von Rubygems in Ihrer Gem-Datei als vorübergehende Problemumgehung.

über den Benutzer Ownatik

was sie bedeuten, steht oben im Gemfile in Ihrem Rails Anwendungsverzeichnis)

source 'https://rubygems.org'

zu

source 'http://rubygems.org'

beachten Sie, dass die zweite Version http anstelle von http s ist.

308
Will

Ersetzen Sie die SSL-Gem-Quelle durch eine Nicht-SSL-Lösung:

224
StuR

Der Grund sind alte Rubine. Sie müssen zuerst den Systemteil unter Verwendung einer Nicht-SSL-Quelle aktualisieren:

gem update --system --source http://rubygems.org/ (Vorübergehende Aktualisierung des Systemteils über eine Nicht-SSL-Verbindung).

Jetzt können Sie gem update Verwenden.

161

Wenn Sie auf einem Mac arbeiten und eine neuere Version von RVM (~ 1.20) verwenden, hat der folgende Befehl für mich funktioniert.

rvm osx-ssl-certs update
115
chaserx

Dieses Problem sollte jetzt behoben sein. Rubygems aktualisieren (gem update --system), vergewissern Sie sich, dass openssl auf Ihrem Betriebssystem auf dem neuesten Stand ist, oder probieren Sie die folgenden Tipps aus, damit es immer noch nicht funktioniert: http://railsapps.github.com/openssl-certificate-verify-failed.html

55
fbernier

Temporäre Lösung (wie von Ownatik angedeutet):

Erstellen oder ändern Sie eine Datei mit dem Namen .gemrc in Ihrem Startpfad, einschließlich der Zeile :ssl_verify_mode: 0

Dies verhindert, dass der Bundler die SSL-Zertifikate von Gems überprüft, wenn er versucht, sie zu installieren.

Für * nix-Geräte bedeutet 'Heimatpfad' ~/.gemrc. Sie können auch /etc/gemrc wenn Sie es vorziehen. Unter Windows XP bedeutet "Heimatpfad" c:\Documents and Settings\All Users\Application Data\gemrc. Für Windows 7 C:\ProgramData\gemrc

50
asfallows

Unter Windows 7 können Sie die Datei cacert.pem von hier herunterladen und die Umgebungsvariable SSL_CERT_FILE auf den Pfad setzen, in dem Sie das Zertifikat speichern, z

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

oder Sie können die Variable in Ihrem Skript wie folgt einstellen ENV['SSL_CERT_FILE']="C:/users/<username>/cacert.pem"

Ersetzen Sie <Benutzername> durch Ihren eigenen Benutzernamen.

17
peter

Die echte Lösung für dieses Problem, wenn Sie RVM verwenden:

  1. Rubygems aktualisieren: gem update --system
  2. Verwenden Sie RVM, um SSL-Zertifikate zu aktualisieren: rvm osx-ssl-certs update all

Hut ab vor dieser Tipp zum RailsApps-Projekt !

15
Alan H.

Für diejenigen unter Ihnen, die Ruby über RVM installiert haben und eine schnelle Lösung wünschen (lieber nicht nach Brunos Anfrage lesen), versuchen Sie Folgendes:

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

Für weitere Details, hier ist der Link, wo ich die Lösung gefunden habe.

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

Übrigens musste ich meine Zertifikate auf Ubuntu nicht anfassen.

Das Beste ist, dass dies keine Problemumgehung ist. Es lädt Edelsteine ​​über SSL herunter und schlägt fehl, wenn ein Problem wie ein Mann in der Mitte auftritt, das viel besser ist, als nur die Sicherheit auszuschalten.

7
danielrussia

Sie können eine Liste der CA-Zertifikate von der Website von curl unter http://curl.haxx.se/ca/cacert.pem herunterladen

Setzen Sie dann die Umgebungsvariable SSL_CERT_FILE auf Ruby), um sie zu verwenden. Beispiel unter Linux:

$ SSL_CERT_FILE=~/cacert.pem bundle install

(Referenz: https://Gist.github.com/fnichol/86755 )

7
arcanex

Dies wurde behoben

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

Nachdem RubyGems 2.6.x veröffentlicht wurde, können Sie manuell auf diese Version aktualisieren.

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

Laden Sie die Datei in ein Verzeichnis herunter, auf das Sie später verweisen können (z. B. das Stammverzeichnis Ihrer Festplatte C :).

Verwenden Sie jetzt Ihre Eingabeaufforderung:

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

Danach sollte gem --version die neue Update-Version melden.

Sie können rubygems-update gem jetzt sicher deinstallieren:

C:\>gem uninstall rubygems-update -x
6
Roffers

Hier finden Sie eine einfache Anleitung zum Kopieren und Einfügen der .pem-Datei

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

Zur Zertifikatsprüfung fehlgeschlagen

Wenn Sie die vorherigen Abschnitte gelesen haben, wissen Sie, was dies bedeutet (und schämen sich, wenn Sie dies nicht getan haben).

Wir müssen AddTrustExternalCARoot-2048.pem herunterladen. Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:

C:> gem which rubygems C: /Ruby21/lib/Ruby/2.1.0/rubygems.rb Lassen Sie uns nun dieses Verzeichnis finden. Geben Sie im selben Fenster den Pfad bis zur Dateierweiterung ein, verwenden Sie jedoch stattdessen umgekehrte Schrägstriche:

C:> starte C:\Ruby21\lib\Ruby\2.1.0\rubygems Dies öffnet ein Explorer-Fenster in dem angegebenen Verzeichnis.

Schritt 3: Kopieren Sie das neue Vertrauenszertifikat

Suchen Sie nun das Verzeichnis ssl_certs und kopieren Sie die PEM-Datei, die wir aus dem vorherigen Schritt erhalten haben.

Es wird mit anderen Dateien wie GeoTrustGlobalCA.pem aufgelistet.

5
geniushkg

So beheben Sie dieses Problem unter Windows:

laden Sie die .perm-Datei herunter und legen Sie die SSL_CERT_FILE in der Eingabeaufforderung fest

https://Gist.github.com/fnichol/86755

4
bkdir

Die einfachste Lösung:

rvm pkg install openssl
rvm reinstall all --force

Voila!

4
user2886774

gleiches Problem aber mit anderem Edelstein hier:

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.

vorübergehende Lösung: gem install builder -v '3.0.0' ermöglicht das Fortfahren mit bundle install

4
Ludwig

Mein permanenter Fix für Windows:

  1. Laden Sie das CACert herunter und speichern Sie es als C:\Ruby\ssl_certs\GlobalSignRootCA.pem from http://guides.rubygems.org/ssl-certificate-update/

  2. Erstellen Sie eine Systemvariable mit dem Namen " SSL_CERT_FILE " und setzen Sie sie auf C:\Ruby\ssl_certs\GlobalSignRootCA.pem.

  3. Versuch es noch einmal: 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
Dio Phung

Vielen Dank an @ Alexander.Iljushkin für:

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

Danach scheiterte der Bundler immer noch und die Lösung dafür war:

gem install bundler

3
Sebastian Ax

Unter Ubuntu 12.04 erhalte ich einen etwas anderen Fehler, obwohl er möglicherweise verwandt ist:

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.

Es passiert, wenn ich bundle install mit source 'https://rubygems.org' in einem Gemfile.

Dies ist ein Problem mit OpenSSL unter Ubuntu 12.04. Siehe Rubygems-Ausgabe Nr. 319 .

Um dies zu beheben, führen Sie apt-get update && apt-get upgrade unter Ubuntu 12.04, um Ihr OpenSSL zu aktualisieren.

3
Jo Liss

Ich konnte dies auf die Tatsache zurückführen, dass die Binärdateien, die rvm herunterlädt, nicht mit OpenSSL von OS X kompatibel sind, das alt ist und vom Betriebssystem nicht mehr verwendet wird.

Die Lösung für mich bestand darin, die Kompilierung bei der Installation von Ruby über rvm zu erzwingen:

rvm reinstall --disable-binary 2.2
3
Schrockwell

Ich bekam einen ähnlichen Fehler. So habe ich das gelöst: Suchen Sie in Ihrem Pfadverzeichnis nach Gemfile. Bearbeiten Sie die Quelle in der Gemdatei in http statt in https und speichern Sie sie. Dadurch wird möglicherweise der Bundler ohne das SSL-Zertifikat issue.l installiert

2
ecksor5

Überprüfen Sie für Windows-Computer Ihre Gem-Version mit

gem --version

Dann aktualisiere deinen Edelstein wie folgt:

Laden Sie die Datei in ein Verzeichnis herunter, auf das Sie später verweisen können (z. B. das Stammverzeichnis Ihrer Festplatte C :).

Verwenden Sie jetzt Ihre Eingabeaufforderung:

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

Die Bundle-Installation wird nun ohne einen Fehler bei der Überprüfung des SSL-Zertifikats erfolgreich abgeschlossen.

Eine ausführlichere Anleitung finden Sie unter hier

2
KBIIX

Das hat bei mir funktioniert:

  • laden Sie das neueste Juwel unter https://rubygems.org/pages/download herunter
  • installiere den Edelstein mit gem install --local [path to downloaded gem file]
  • aktualisiere die Edelsteine ​​mit update_rubygems
  • überprüfe, ob du auf der neuesten Gem-Version bist mit gem --version
1
Guy Chauliac

Ich war erst vor kurzem mit diesem Problem konfrontiert und folgte den beschriebenen Schritten hier . Möglicherweise verweisen Sie nicht auf das richtige OpenSSL-Zertifikat. Nach dem Rennen:

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

und

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

das bundle komplett lief!

1
jshaf

Download rubygems-update-2.6.7.gem .

Verwenden Sie jetzt Ihre Eingabeaufforderung:

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

Danach, gem --version sollte die neue Update-Version melden.

Sie können rubygems-update gem jetzt sicher deinstallieren:

C:\>gem uninstall rubygems-update -x
Removing update_rubygems
Successfully uninstalled rubygems-update-2.6.7
1
Aswathy

Ich musste openssl neu installieren:

brew uninstall --force openssl
brew install openssl
1
gabeodess

Wenn Sie Edelsteine ​​von einer Quelle abrufen, deren SSL-Zertifikat von einer internen Zertifizierungsstelle als vertrauenswürdig eingestuft wurde (oder wenn Sie über einen Firmen-Webproxy mit SSL-Überprüfung eine Verbindung zu einer externen Quelle herstellen), verweisen Sie Ihre Variable SSL_CERT_FILE env auf Ihre Zertifikatskette . Dies erfordert höchstwahrscheinlich nur das Exportieren Ihres Stammzertifikats aus Ihrem Zertifikatspeicher (System Keychain unter macOS) an einen von Ihrer Shell aus zugänglichen Speicherort, d. H .:

export SSL_CERT_FILE=~/RootCert.pem
0
mostlikelee

Das einzige, was für mich unter Windows und der Version Ruby= 1.9) funktioniert hat, ist das Herunterladen einer Cacert-Datei von http://guides.rubygems.org/ssl- Zertifikat-Update/

Führen Sie den folgenden Befehl aus, bevor Sie die Bundle-Installation ausführen

bundle config --global ssl_ca_cert /path/to/file.pem
0

Wenn Sie Rails-assets Verwenden

Wenn Sie Ihr Vermögen mit https://Rails-assets.org/ Verwalten, werden Ihnen keine Antworten helfen. Auch das Konvertieren in http wird nicht helfen.

Die einfachste Lösung ist die Verwendung dieser Quelle, http://insecure.Rails-assets.org. Dies wurde in ihrer Homepage erwähnt.

0
Anwar