Kann keine Ruby Gems unter Mac OS installieren - SSL_connect error

Meine Umgebung ist Mac OS 10.10.5, Ruby Version 2.2.4 (oder 2.2.2 oder 2.2.0) Gem (nach dem Upgrade) ist 2.6.7, RVM Version 1.27.0.

Dies hat auch in den letzten Tagen einige Duplikate, aber das sind mehr Informationen, als ich in einem Kommentar eintragen kann.

Wenn ich Edelsteine auf einer beliebigen Version von Ruby installiere, erhalte ich Folgendes:

$ gem install bundler
ERROR:  Could not find a valid gem 'bundler' (>= 0), 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)

Es gibt viele Informationen dazu, insbesondere bei Problemen unter Windows. Sehenhttp: //guides.rubygems.org/ssl-certificate-update für die vorgeschlagene Lösung. Ich befolge dies, erhalte aber weiterhin den gleichen Fehler.

Das Problem scheint darin zu liegen, die Datei GlobalSignRootCA.pem an den richtigen Ort zu bringen, was nicht ganz klar ist. Der obige Link erklärt, wie man das passende ssl_certs-Verzeichnis findet, von denen es 2 in meinem System gibt, aber keine funktionieren.

Ich vergesse, wo ich Folgendes gelernt habe:

$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_DIR'
/etc/openssl/certs
$ ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'
/etc/openssl/cert.pem

Was vielleicht einen Hinweis gegeben hat, aber das Anhängen der .pem-Datei an die letztere oder das Kopieren in die erstere hat keine Auswirkung.

Wenn ich openssl (homebrew) neu installiere, sagt es mir hilfreich:

A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

aber das löst auch nicht das problem.

Von einer anderen SO-Frage:

rvm osx-ssl-certs update all

funktioniert nicht. Auch nicht:

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

Weiß jemand, wie man ein Gefühl dafür bekommt, was Rubygems hier erwartet? Wo will es diese Datei oder ist das sogar die Datei, die es will? Soll ich die PEM-Datei in den OSX-Schlüsselbund importieren? Wie macht man das?

Oder gibt es eine Möglichkeit, die Gem-Datei abzurufen und lokal zu installieren? rubygems tut dies hilfreich für rubygems selbst, aber nicht für die einzelnen edelsteine, soweit ich das beurteilen kann.

- Problemumgehung

Okay - die Antwort auf die Frage, woher das Juwel kommt: gehe zuhttps://rubygems.org/gems/[package name] und wähle eine Version und gehe zum Download - aktuell unter Links auf der rechten Seite. Laden Sie die Datei herunter undgem install --local [downloaded gem file]. Plus alle Abhängigkeiten.

Um zu automatisieren:

# start by adding insecure source for --explain - thanks to @tnum
gem source -a http://rubygems.org/
while read x 
do
wget https://rubygems.org/downloads/$x.gem
gem install --local $x.gem 
rm $x.gem
done < <(gem install --explain [package name] | grep "^  ")
# remove insecure source
gem source -r http://rubygems.org/

Ein Teil des Mangels an Sicherheit könnte durch einen besseren regulären Ausdruck gemildert werden, ist aber immer noch unsicher. Beachten Sie, dasswget https:// funktioniert also das ssl problem ist definitiv mit rubygems.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage