Ich versuche, Signet für OAuth für Google-Dienste zu verwenden. Und erhalten Sie diesen Fehler:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Folgende Fragen beantworten:
- SSL_connect zurückgegeben = 1 errno = 0 state = SSLv3-Leseserverzertifikat B: Zertifikatüberprüfung fehlgeschlagen
- OmniAuth & Facebook: Zertifikatüberprüfung fehlgeschlagen
Die Lösung scheint entweder darin ca_path
zu bestehen , zu reparieren oder VERIFY_NONE
SSLeinzustellen .
Der veröffentlichte ca_path
Fix funktioniert nur unter Linux (Port-Installation) und der Fix für VERIFY_NONE
scheint für Faraday zu sein.
Gibt es eine Lösung für Windows / Signet Gem?
ruby-on-rails
ssl
mbdev
quelle
quelle
paypal_adaptive
Edelstein. Hat jemand eine Antwort gefunden?IO.copy_stream( open( url, { ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE } ), download_path )
nur die SSL-Überprüfung deaktivieren. In unserem Fall war die Sicherheit kein Problem, der Server war außerhalb unserer Kontrolle und es war eine vorübergehende Lösung.Antworten:
Der beste Weg, dies in Windows für Ruby selbst zu lösen, nicht nur ein Juwel, ist Folgendes:
Erstellen Sie eine neue Systemvariable:
Variable: SSL_CERT_FILE Wert: C: \ RailsInstaller \ cacert.pem
Schließen Sie alle Eingabeaufforderungen, einschließlich der Eingabeaufforderung Ihres Rails-Servers usw.
Starten Sie eine neue Ruby Irb-Eingabeaufforderung und versuchen Sie Folgendes:
$irb>require 'open-uri' $irb>open('https://www.gmail.com')
Es sollte jetzt alles gut funktionieren.
quelle
librarian-chef
Ihrer Information, als ich mit dem Download von Kochbüchern für Köche arbeitete, brauchte ich dieses Zertifikat, das stattdessen mit KochC:/opscode/chefdk/embedded/ssl/certs/cacert.pem
Lösung für Windows, die ich aus ein paar verschiedenen Antworten zusammengeschustert habe:
In config / initializers / omniauth.rb :
Starten Sie Ihren Server natürlich neu.
Fußnoten: Möglicherweise können Sie viele unnötige Zertifikate in der Datei cacert.pem ausschneiden, um die Größe zu verringern. Wenn Sie diese Lösung nur für die Entwicklung benötigen, können Sie die Datei außerhalb Ihres Projekts speichern und eine
if Rails.env.development?
_provider-Zeile mit der client_options-Hash_else
_provider-Zeile ohne client_options-Hash_ erstellen.end
quelle
Nach zu viel Suche und Zeitverschwendung fand ich eine sehr einfache Lösung, um dieses Problem in Ruby mit Windows zu beheben.
Zwei einfache Schritte:
In die Eingabeaufforderung schreiben:
C:\gem install certified
Fügen Sie in Ihrer
rb
Datei Folgendes hinzu:require 'certified'
Das ist es.
quelle
certified-update.bat
Datei gelegentlich verwenden sollten , um das Zertifikat auf dem neuesten Stand zu halten.rb
Datei" sagen , auf welche genaue Datei beziehen Sie sich? Wäre das dieboot.rb
Datei?Das Aktualisieren des Rubygems-Paketverwaltungsframeworks hat dieses Problem für mich unter Windows 7 behoben.
https://rubygems.org/pages/download
gem update --system # may need to be administrator or root
quelle
Ja, ich habe die Datei omniouth.rb im Ordner initializers auf Folgendes gesetzt:
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:client_options => {:ssl => {:verify => false}}}
und das scheint jetzt gut zu funktionieren. Aber tut dies nicht für die Produktion verwendet werden .
quelle
Die Verwendung der URL http: // anstelle von https: // erleichtert Ihnen dies
Ändern Sie die Edelsteinquelle in http://rubygems.org/, indem Sie die folgende Befehlszeile in Ihrer Ruby-Befehlszeile verwenden
gem sources -a http://rubygems.org/
quelle
Gehen Sie zur Download-Seite für das Rubygems-Update: https://rubygems.org/gems/rubygems-update
Klicken Sie auf den Download-Link und Sie werden eine Datei mit dem Namen rubygems-update-2.6.7.gem herunterladen. Navigieren Sie in der Befehlszeile zu dem Verzeichnis, in das Sie die .gem-Datei heruntergeladen haben, und geben Sie Folgendes ein:
gem install rubygems-update-2.6.7.gem
(oder was auch immer der Dateiname war, wenn eine neuere Version)
Geben Sie dann Folgendes ein:
Sie können überprüfen, ob es aktualisiert wurde mit:
gem --version
quelle
Hinzufügen zur DevDude-Lösung, aber Verwenden von Windows Powershell:
An der Powershell-Eingabeaufforderung:
$env:SSL_CERT_FILE = 'c:\RailsInstaller\cacert.pem'
Ich konnte dann
gem update
erfolgreich laufenHinweis: Sie können diese Umgebungsvariable einfach in Ihrem Profil definieren
notepad $profile
quelle
Ich hatte diesen Fehler beim Versuch, Rails 5 auf einem Windows-Computer einzurichten. Es stellte sich heraus, dass ich die Rubygem-Version auf 2.6.7 aktualisieren musste, und dann funktionierte es.
Schritt 1 Rubygem von unten herunterladen
https://rubygems.org/downloads/rubygems-update-2.6.7.gem
Schritt 2 - Installieren Sie, indem Sie auf heruntergeladene Rubygems zeigen
gem install --local C:\rubygems-update-2.6.7.gem
Schritt 3 - Überprüfen Sie, ob die neue Version 2.6.7 ist
gem --version
Schritt 4 - Jetzt deinstallieren Sie Rubygems-Update Gem sicher
gem uninstall rubygems-update -x
In Schritt 5 wurde erneut versucht, die Schienen 5 zu installieren
gem install rails --version 5.0.0
Lief wie am Schnürchen!
Ich habe Informationen erhalten von: http://guides.rubygems.org/ssl-certificate-update/#installing-using-update-packages
quelle
Ich konnte die oben erwähnte Einstellung PATH oder SYSTEM VARIABLE entfernen, indem ich das Zertifikat als vertrauenswürdige Behörde importierte.
quelle
Ich glaube, die richtige Antwort ist, Ihr Gem- Installationsprogramm zu aktualisieren: rubygems-update . Die Erklärung, warum dies erforderlich ist, finden Sie unter: SSL-Zertifikat-Updates
quelle
Speichern Sie Ihre Datei cacert.pmp unter https://curl.haxx.se/ca/cacert.pem und fügen Sie diese Datei zum Speicherort Ihres Ruby-Installationsordners \ lib \ ruby \ 2.3.0 \ rubygems \ ssl_certs hinzu
Beispiel: C: \ Ruby23 \ lib \ ruby \ 2.3.0 \ rubygems \ ssl_certs
quelle
Dies hat mir geholfen: https://coderwall.com/p/ubl6iw/fix-ssl_connect-returned-1-errno-0-state-sslv3-read-server-certificate-b-certificate-verify-failed-openssl-ssl- sslerror Mein Ruby on Rails-Projekt sendet intern Daten an eine API und kann das interne Zertifikat nicht überprüfen. Diese Zeilen halfen:
require 'https' http = Net::HTTP.new('example.com', 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER http.cert_store = OpenSSL::X509::Store.new http.cert_store.set_default_paths http.cert_store.add_file('/path/to/internal.cert.pem')
Hoffe das kann helfen.
quelle
Dieses Problem trat auch auf, als ich ältere Ruby-Versionen installierte. Als ich die neueste Ruby-Version installiert habe, ist dieses Problem behoben. Grundsätzlich musste das SSL-Zertifikat aktualisiert werden.
quelle
Für Personen, die Schienen benutzen 4.
Fügen Sie dies in devise.rb hinzu
require "omniauth-google-oauth2" config.omniauth :google_oauth2, "CLIENT_ID", "CLIENT_SECRET", { access_type: "offline", approval_prompt: "", :client_options => {:ssl => {:verify => false}} }
quelle
{:ssl => {:verify => false}}
ist nicht die Lösung, es schafft nur ein weiteres Problem.