我已经阅读了很多关于此错误的信息,尤其是在 OmniAuth for Rails 3 中。我有几个问题,因为目前我被困在这个问题上。
this post 中的共识是它无法正确引用证书。我的第一个问题是(我使用 Windows 7 作为问题的开头):
我应该在我的硬盘驱动器的什么地方开始寻找证书?我使用 RailsInstaller 安装 Rails 3,我唯一能找到的靠近那个位置的东西是在“Git”中,那里有一个带有 ca-path 文件的“cert”目录。然而,大多数人的引用是这个“/etc/certs/”或其他东西(基本上是一个相对 url)。我的问题是引用它的父目录在哪里?这可能非常简单,但我就是不知道。会不会是 C:/目录下我的 RailsInstaller 文件夹?
最佳答案
在我的 config\initializers\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/ 的文件 cacert.pem放入您的 Rails 应用程序配置目录
感谢这篇文章:
关于ruby-on-rails-3 - Ruby on Rails 中的 SSL 错误 OmniAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831981/