2012-01-12 74 views
1

我已經閱讀了很多關於這個錯誤的信息,特別是在OmniAuth for Rails 3中。我有幾個問題,因爲目前我困在它上面。SSL錯誤在Ruby on Rails中的OmniAuth

this post的共識是它無法正確引用證書。我的第一個問題是(我使用Windows 7來說明問題):

在我的硬盤驅動器中,我會開始尋找哪些證書?我使用RailsInstaller來安裝Rails 3,唯一能找到的地方就是在「Git」中,其中有一個帶有ca-path文件的「cert」目錄。然而,大多數人的參考是這個「/ etc/certs /」或其他東西(基本上是一個相對的網址)。我的問題是從哪裏引用它的父目錄?這可能非常簡單,但我只是不知道。它會是我C:/目錄下的RailsInstaller文件夾嗎?

回答

1

在我的配置\初始化\ 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

感謝這個帖子:

0

維韋克您好我解決在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