SSL错误在Ruby on Rails中的OmniAuth
问题描述:
我已经阅读了很多关于这个错误的信息,特别是在OmniAuth for Rails 3中。我有几个问题,因为目前我困在它上面。SSL错误在Ruby on Rails中的OmniAuth
this post的共识是它无法正确引用证书。我的第一个问题是(我使用Windows 7来说明问题):
在我的硬盘驱动器中,我会开始寻找哪些证书?我使用RailsInstaller来安装Rails 3,唯一能找到的地方就是在“Git”中,其中有一个带有ca-path文件的“cert”目录。然而,大多数人的参考是这个“/ etc/certs /”或其他东西(基本上是一个相对的网址)。我的问题是从哪里引用它的父目录?这可能非常简单,但我只是不知道。它会是我C:/目录下的RailsInstaller文件夹吗?
答
在我的配置\初始化\ devise.rb
require "omniauth-facebook"
if RbConfig::CONFIG["host_os"] =~ /mingw|mswin/
ca_file = File.expand_path Rails.root.join("config", "cacert.pem")
ssl_options = {}
ssl_options[:ca_path] = '/etc/ssl/certs' if Rails.env.staging?
ssl_options[:ca_file] = ca_file
config.omniauth :facebook, "APP_ID", "APP_SECRET", # "APP_ID", "APP_SECRET" your got from facebook app registration
:client_options => {:ssl => ssl_options}
else
config.omniauth :facebook, "APP_ID", "APP_SECRET"
end
从http://curl.haxx.se/ca/投放到您的Rails应用程序的配置目录下的文件cacert.pem
感谢这个帖子:
答
维韦克您好我解决在Windows 7这个问题, 你可以从这里获得证书: https://gist.github.com/fnichol/867550
因此,对于这个证书位置将是C:\ RailsInstaller \ cacert.pem
Full image:config \ initializers \ omniauth.rb
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, '4545454545fgdfg','545fg45fdh4f5d4gh5fd4h5fd4h5fd4h',
{:scope => '', :client_options => { :ssl => { :ca_file => 'C:\RailsInstaller\cacert.pem'}}}
end