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