OAuth= Googleサービスへの署名を使用しようとしています。このエラーが発生します。
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
これらの質問に続いて:
解決策はca_path
を修正するか、または sSLの。VERIFY_NONE
を設定します
投稿されたca_path
修正はLinux(ポートインストール)でのみ機能し、VERIFY_NONE
の修正はファラデーのようです。
Windows/signet gemのソリューションはありますか?
実際、私はこれをWindowsでRuby 1つのgemではなく、Ruby $ ===自体について)解決するために見つけた最良の方法は、以下を実行することです:
新しいシステム変数を作成します。
変数:SSL_CERT_FILE値:C:\ RailsInstaller\cacert.pem
Railsサーバーコマンドプロンプトなど)を含むすべてのコマンドプロンプトを閉じます。
新しいRuby irbプロンプトを開始し、以下を試してください。
$irb>require 'open-uri'
$irb>open('https://www.gmail.com')
すべて正常に動作するはずです。
いくつかの異なる回答からまとめたWindows用のソリューション:
config/initializers/omniauth.rb:
#config/initializers/omniauth.rb Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook, CUSTOMER_KEY, CUSTOMER_SECRET, {client_options: {ssl: {ca_file: Rails.root.join('lib/assets/cacert.pem').to_s}}} end
明らかに、サーバーを再起動します。
脚注:cacert.pem内の不要な証明書の多くを削除できる場合がありますサイズを縮小するファイル。開発にこのソリューションのみが必要な場合は、プロジェクトの外部にファイルを保存し、if Rails.env.development?
_client_optionsハッシュのあるプロバイダー行_ else
_client_optionsハッシュのないプロバイダー行_ end
あまりにも多くの検索と時間の浪費の後、この問題を修正するための非常に簡単な解決策を見つけましたRuby with Windows。
2つの簡単なステップ:
コマンドプロンプトで書き込み:C:\gem install certified
rb
ファイルに次を追加します:require 'certified'
それでおしまい。
Rubygemsパッケージ管理フレームワークを更新すると、Windows 7でこの問題が解決しました。
https://rubygems.org/pages/download
gem update --system # may need to be administrator or root
はい、initializersフォルダーのomniouth.rbファイルを次のように設定しました。
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:client_options => {:ssl => {:verify => false}}}
そして、これは今ではうまくいくようです。ただし、本番環境では使用しないでください。
Https://の代わりにhttp:// URLを使用すると、これが簡単になります
Rubyコマンドラインで次のコマンドラインを使用して、gemソースを http://rubygems.org/ に変更します。
gem sources -a http://rubygems.org/
Rubygems-updateダウンロードページにアクセスします。 https://rubygems.org/gems/rubygems-update
[ダウンロード]リンクをクリックすると、rubygems-update-2.6.7.gemというファイルがダウンロードされます。コマンドラインで、.gemファイルをダウンロードしたディレクトリに移動し、次のように入力します。
gem install rubygems-update-2.6.7.gem
(または、新しいバージョンの場合、ファイル名は何でも)
次に入力:
update_rubygems
更新されたことを確認するには:
gem --version
DevDudeのソリューションに追加しますが、Windows Powershellを使用します。
http://curl.haxx.se/ca/cacert.pem をc:\ railsinstaller\cacert.pemにダウンロードします
PowerShellプロンプトで:
$env:SSL_CERT_FILE = 'c:\RailsInstaller\cacert.pem'
その後、gem update
正常に
注:プロファイルでその環境変数を簡単に定義できますnotepad $profile
WindowsマシンでRails 5をセットアップしようとしたときにこのエラーが発生したため、rubygemバージョンを2.6.7に更新しなければならなかったことがわかりました。
ステップ1以下からrubygemをダウンロードします
https://rubygems.org/downloads/rubygems-update-2.6.7.gem
ステップ2-ダウンロードしたrubygemsを指定してインストールする
gem install --local C:\rubygems-update-2.6.7.gem
ステップ3-新しいバージョンが2.6.7であることを確認します
gem --version
ステップ4-rubygems-update gemを安全にアンインストールします
gem uninstall rubygems-update -x
ステップ5でインストールを試みましたRails 5 again
gem install Rails --version 5.0.0
魔法のように働いた!
私はから情報を得ました: http://guides.rubygems.org/ssl-certificate-update/#installing-using-update-packages
古いRuby=バージョン。最新のRubyバージョンをインストールすると、この問題はなくなりました。したがって、基本的にSSL証明書が必要でした。更新します。
正解は、gemインストーラーを更新することだと思います: rubygems-update 。これが必要な理由の説明は、次の場所にあります。 Ssl Certificate Updates
これは私を助けました: https://coderwall.com/p/ubl6iw/fix-ssl_connect-returned-1-errno-0-state-sslv3-read-server-certificate-b-certificate-verify-failed- openssl-ssl-sslerror My Ruby on Railsプロジェクトは内部的にAPIにデータを投稿しており、内部証明書を検証できません。これらの行は役に立ちました:
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')
これが役立つことを願っています。
https://curl.haxx.se/ca/cacert.pem からcacert.pmpファイルを保存してから、このファイルをyourruby-installation folder\lib\Ruby\2.3.0\rubygemsの場所に追加します\ ssl_certs
例:C:\ Ruby23\lib\Ruby\2.3.0\rubygems\ssl_certs
証明書を信頼できる機関としてインポートすることで、上記のPATHまたはSYSTEM VARIABLE設定を削除できました。