Ich versuche das Michael Hartl Tutorial zu machen. Wenn ich versuche, Rails 3.2.14 in meinem Gemset zu installieren, tritt das folgende Problem auf:
$ gem Install Rails -v 3.2.14
FEHLER: Es konnte kein gültiger Edelstein 'Schienen' (= 3.2.14) gefunden werden. Hier ist der Grund:
Daten können nicht von https://rubygems.org/ heruntergeladen werden - SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3-Leseserverzertifikat B: Zertifikatüberprüfung fehlgeschlagen ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )
Nachdem ich herumgegoogelt hatte, stellte ich fest, dass ich eine Nicht-SSL-Quelle für Rubygems verwenden konnte, also lief ich:
sudo gem sources -a http://rubygems.org
Als ich dann erneut versuchte, Schienen zu installieren, war dies erfolgreich. Ich habe das obige Problem jedoch immer noch erhalten, aber als Warnung:
WARNUNG: Daten können nicht von ' https://rubygems.org/ ' abgerufen werden: SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3-Leseserverzertifikat B: Zertifikatüberprüfung fehlgeschlagen ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )
Wie kann ich diese Warnung / diesen Fehler vollständig entfernen?
Ich benutze folgendes:
- rvm 1.22.15
- ruby 2.0.0p247 (27.06.2013, Revision 41674) [x86_64-darwin12.3.0]
- OSX 10.8.5
quelle
2.0.*
) Versionen vonrubygems
. Versuchen Sie, auf die neueste Rubygems-Version zu aktualisieren:gem update --system
und führen Sie sie erneut ausgem install
.gem sources -r https://rubygems.org/
funktionierte das Ausführen für mich (bis zum Entfernen der Warnung).Antworten:
Für RVM- und OSX-Benutzer
Stellen Sie sicher, dass Sie das neueste RVM verwenden:
Dann können Sie zwei Dinge tun:
Zertifikate aktualisieren:
Rubygems aktualisieren:
Für Nicht-RVM-Benutzer
Pfad für Zertifikat suchen:
Zertifikat generieren:
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 aktualisieren
ca-certificates
. (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 bauen für Fenster durch vorbereitet Luis Lavena und der Weg zu Zertifikaten wird so etwas wie zeigen ,
C:/Users/Luis/...
Check https://github.com/oneclick/rubyinstaller/issues/249 für weitere Einzelheiten und diese Antwort https://stackoverflow.com / a / 27298259/497756 zur Behebung.quelle
rvm rubygems latest
führte zu einem Fehler, der sich über fehlende Prüfsummen beschwerte. Allerdings begannen die Dinge auch ohne das zu funktionieren ... anscheinend könnten Sie es erzwingen,--verify-downloads 1
wenn Sie müssten. Irgendwelche Ideen, warum das so sein könnte? Es wurde versucht, die Version abzurufenrubygems-2.1.6
head
Version hinzugefügt und werde siestable
bald veröffentlichen.permission denied: /private/etc/ssl/cert.pem
Neueste Erkenntnisse ...
https://gist.github.com/luislavena/f064211759ee0f806c88
Am wichtigsten ... herunterladen https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
Finde heraus, wo du es anbringen sollst
Kopieren Sie dann einfach die PEM-Datei in ../2.1.0/rubygems/ssl_certs/ und fahren Sie mit Ihrem Geschäft fort.
quelle
.pem
Erweiterung speichern , nicht.pem.txt
!AddTrustExternalCARoot-2048.pem
, 2) Ich habe die Datei abgelegtC:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs
, 3) Ich laufegem install susy
und erhalte den gleichen FehlerUnable 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
Für Windows-Benutzer
Gehe zum Link http://rubygems.org/pages/download
quelle
Wenn Sie die Nicht-SSL-Quelle verwenden möchten, entfernen Sie zuerst die HTTPS-Quelle und fügen Sie dann die HTTP-Quelle hinzu:
AKTUALISIEREN:
Wie mpapis feststellt, sollte dies nur als vorübergehende Problemumgehung verwendet werden. Es kann einige Sicherheitsbedenken geben, wenn Sie über die Nicht-SSL-Quelle auf RubyGems zugreifen.
Sobald die Problemumgehung nicht mehr benötigt wird, sollten Sie die SSL-Quelle wiederherstellen:
quelle
sudo gem sources -r https://rubygems.org/
undsudo gem sources -r http://rubygems.org/
. Beachten Sie das Nachlaufen/
./
, sollte sie auch mit dem Trailing entfernt werden/
.Unter Windows müssen Sie die
HTTP
Quelle zum Aktualisieren verwenden undgem
dann wieder zur Verwendung wechselnHTTPS
.Bearbeiten: Warnung Ich bin nicht sicher, ob dies sicher ist . Weiß jemand, ob Ruby-Pakete signiert sind? Die akzeptierte Antwort scheint eine bessere Lösung zu sein.
quelle
gem sources -l
Ihre Quellen vor und nach der Aktualisierung des Systems anzuzeigen. Wenn die Aktualisierung fehlschlägt, geben Sie direkt nach dem --system eine Versionsnummer an. Siehe rubygems.org/gems/rubygems-update/versions oder fragen Sie den Mitarbeiter nach welchengem -v
Berichten.Für Windows-Benutzer (und möglicherweise andere)
Rubygems.org hat eine Anleitung, die nicht nur erklärt, wie dieses Problem behoben werden kann, sondern auch, warum so viele Menschen es haben: SSL-Zertifikat-Update des Der Grund für das Problem ist, dass rubygems.org auf ein sichereres SSL-Zertifikat (SHA-2) umgestellt hat 256-Bit-Verschlüsselung verwenden). Das Rubygems-Befehlszeilentool 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 Rubine Sie haben:
Je nachdem, ob Sie eine Version 1.8.x, 2.0.x oder 2.2.x haben, müssen Sie ein Update-Juwel mit dem Namen „rubygems-update-XYZgem“ herunterladen, wobei XYZ die von Ihnen benötigte Version ist. Ausführen von 1.8.x: Download: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 Ausführen von 2.0.x: Herunterladen: https://github.com/rubygems/rubygems/releases/tag/v2 .0.15 Ausführen von 2.2.x: Download: https://github.com/rubygems/rubygems/releases/tag/v2.2.3
Installieren Sie das Update gem:
Führen Sie das Update-Juwel aus:
Überprüfen Sie, ob Rubygems aktualisiert wurde:
Deinstallieren Sie das Update gem:
An diesem Punkt sind Sie möglicherweise in Ordnung. 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 (derzeit AddTrustExternalCARoot-2048.pem) von https://rubygems.org/pages/download herunter . Alle Zertifikate befinden sich auch unter: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs
Finden Sie heraus, wo Sie es ablegen sollen:
Legen Sie diese Datei an dieser Stelle im Verzeichnis „rubygems \ ssl_certs“ ab.
Wie pro rubygems begehen , werden die Zertifikate auf spezifischere Verzeichnisse verschoben. Daher wird derzeit erwartet, dass sich das Zertifikat (AddTrustExternalCARoot-2048.pem) auf dem folgenden Pfad befindet
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
quelle
Versuchen Sie, die Quellwebsite für die Edelsteine zu verwenden, z. B. rubygems.org. Verwenden Sie http anstelle von https. Diese Methode beinhaltet keine Arbeit wie das Installieren von Zertifikaten und all das.
Beispiel -
Dies funktioniert, aber es gibt eine Einschränkung.
Das Juwel ist installiert, aber die Dokumentation ist nicht auf Zertifizierungsfehler zurückzuführen. Hier ist der Fehler, den ich bekomme
quelle
Laufen
gem update --system
hat bei mir funktioniertquelle
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Stellen Sie sicher, dass Ihre Systemuhr korrekt ist
Dieser genaue Fehler ist mir heute auf einer virtuellen Ubuntu-Maschine passiert, die auf VirtualBox ausgeführt wird. Ich habe die meisten der oben gezeigten Lösungen ausprobiert, bevor ich bemerkte, dass ich aus einem sehr alten Schwebezustand zurückgekehrt war und meine Uhr um viele Tage ausgeschaltet war.
Das sofortige Aktualisieren der Uhr hat mein Problem behoben. Hier ist der Befehl, den ich in meinem Fall verwendet habe:
sudo service ntp stop && sudo ntpdate pool.ntp.org && sudo service ntp start
quelle
Durch einfaches Deinstallieren und erneutes Installieren von openssl mit homebrew wurde dieses Problem für mich gelöst.
brew uninstall --force openssl
brew install openssl
quelle
brew uninstall --ignore-dependencies openssl
(entspricht der altenforce
Flagge)Für Fedora-Benutzer
Aktualisieren Sie die
cert.pem
neueste Datei, die von cURL bereitgestellt wird: http://curl.haxx.se/ca/cacert.pemquelle
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. Denken Sie daran, dass dies keine Sicherheitsverletzung ist, solange Sie das Zertifikat als vertrauenswürdig validieren können.
quelle
In meinem Fall waren die Ubuntu CA-Zertifikate veraltet. Ich habe es behoben, indem ich ausgeführt habe:
quelle
Ansatz / Einzeiler, der automatisiert werden kann, um Edelsteine über HTTP anstelle von HTTPS herunterzuladen:
quelle
Der besondere Fall von RubyGems (dem Befehlszeilentool) besteht darin, dass die Vertrauenszertifikate in seinem Code gebündelt werden müssen, damit RubyGems eine Verbindung zu den Servern herstellen kann, auch wenn das Basisbetriebssystem deren Identität nicht überprüfen kann.
Bis vor einigen Monaten wurde dieses Zertifikat von einer Zertifizierungsstelle bereitgestellt, ein neueres Zertifikat jedoch von einer anderen.
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 der Benutzer) geben.
Jeder kann seine Lösung finden, indem er die einfachen Schritte befolgt, die unter dem folgenden Link angegeben sind
https://gist.github.com/luislavena/f064211759ee0f806c88
quelle
Versuchen
Hoffe, es löst das Problem.
quelle
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)
Laden Sie die Datei cacert.pem von http://curl.haxx.se/ca/cacert.pem herunter . Speichern Sie diese Datei unter C: \ RailsInstaller \ cacert.pem.
Machen Sie Ruby jetzt auf Ihr Zertifizierungsstellenpaket aufmerksam, indem Sie SSL_CERT_FILE festlegen. Geben Sie Folgendes ein, um dies in Ihrer aktuellen Eingabeaufforderungssitzung festzulegen:
Setzen Sie SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem
quelle
Ich hatte das gleiche Problem beim Versuch, Gurkenjuwel zu installieren. Mir ist jedoch aufgefallen, dass Bundler Gem bereits mit Ruby 2.0 installiert ist. Ich habe eine Gemfile.rb im Projektordner mit den erforderlichen Gems erstellt und diese Schritte ausgeführt
Alle erforderlichen Edelsteine installiert.
quelle
Für Illumos / Solaris mit OpenCSW pkgutil:
Installieren Sie CSW-Zertifikate vor der Gem-Installation.
Wenn Sie ein Ruby-Kit verwenden, das nicht von OpenCSW stammt, erwartet Ihre Ruby-Version möglicherweise, dass die Zertifikatdatei an einem anderen Ort gefunden wird. In diesem Fall habe ich einfach OpenCSWs /etc/opt/csw/ssl/cert.pem mit dem erwarteten Ort verknüpft.
Überprüfen Sie, wo Ruby es erwartet:
Wenn es dann eine Diskrepanz gibt, verknüpfen Sie sie:
quelle
Oder kann durch eine Firewall wie mich verhindert werden. Versuche dies:
sudo gem install --http-proxy http: // localhost: port cocoapods -V
quelle
Für Windows-Benutzer:
Nach der erfolgreichen Installation von Ruby 2.2.3 (+ rubygems 2.5.1) auf einem Testcomputer mit Internetzugang trat dieser SSL-Fehler auf, als ich den Bundler auf einem Produktionscomputer im Netzwerk 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 Fehlermeldungen die folgenden Schritte ausgeführt habe, um die Installation des Bundlers abschließen zu können (dies mag verrückt klingen, aber es klingt hat funktioniert...).
Laden Sie über einen Computer mit uneingeschränktem Zugriff auf das Internet die folgenden Dateien herunter:
Ich habe diese Dateien auf einem Intranetserver hinzugefügt und dabei die Ordnerstruktur der obigen Links beibehalten:
spec.4.8.gz e latest_specs.4.8.gz
bundler-1.11.2.gemspec.rz
bundler-1.11.2.gem
Dann habe ich mein Intranet hinzugefügt, um auf die Edelsteinquelle zuzugreifen:
Ich habe mit Erfolg den "gem install bundler" nach der Installation ausgeführt, alles was es brauchte war mein Intranet des gem zu entfernen:
Ich hoffe das ist in jeder ähnlichen Situation nützlich ....
quelle
Als Windows 10-Benutzer folgte ich der Antwort von Dheerendra und es funktionierte eines Tages für mich. Am nächsten Tag erlebte ich das Problem erneut und sein Fix funktionierte nicht. Für mich war das Update zu aktualisieren
bundler
mit:gem update bundler
Ich glaube, meine Version von
bundler
war mehr als ein paar Monate alt.quelle
Stellen Sie sicher, dass Sie Ruby mit der Option --disable-binary installiert haben. Wenn nicht, deinstallieren Sie es und installieren Sie es mit der Option neu.
Mehr Infos hier
quelle
Die Antwort ist nicht mehr gültig. Da ich jetzt auf das Problem mit älterem Windows Ruby gestoßen bin, werde ich die Antwort veröffentlichen.
Als ich ein aktives Unterstützungsjuwel installieren wollte:
Die folgenden Schritte müssen nur die Zertifikate von neueren Windows Ruby kopieren. Nehmen Sie den neuesten Rubin (oder mindestens Rubin 2.4.0 ) und gehen Sie wie folgt vor:
Kopieren Sie Zertifikate aus diesen Verzeichnissen (passen Sie sie an Ihre Bedürfnisse 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 Ziel (wieder auf das einstellen, was Sie brauchen):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs
quelle