ruby-on-rails-3 - Ruby on Rails 中的 SSL 错误 OmniAuth

标签 ruby-on-rails-3 ssl omniauth

我已经阅读了很多关于此错误的信息,尤其是在 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/

相关文章:

ruby-on-rails - 在 Rails 3 (Devise + Omniauth) 中设置环境变量

ruby-on-rails - Rails 上的 OmniAuth ruby​​,强制 Facebook 用户在当前登录 Facebook 时重新进行身份验证

ruby-on-rails - 设计、OmniAuth 和 Facebook : "Not found. Authentication passthru."

ruby-on-rails-3 - Ruby 教程 Ch9 练习 #9 - 不允许管理员删除自己

ruby-on-rails-3 - 通过回形针4附加时在S3中设置内容类型?

ruby-on-rails - Heroku Rake 任务不理解 rand 方法

php - SMTP -> 错误 : Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (0)

wordpress - 加载不安全的元素 - 整个网站上没有 https

ruby-on-rails - 尝试在模型中包含 ActionController::UrlWriter 时未初始化的内容

'pointed domains' 的 SSL