【问题标题】:SSL Error OmniAuth in Ruby on RailsRuby on Rails 中的 SSL 错误 OmniAuth
【发布时间】:2012-02-08 13:25:11
【问题描述】:

我已经阅读了很多关于此错误的信息,尤其是在 OmniAuth for Rails 3 中。我有几个问题,因为目前我被困在它上面。

this post 中的共识是它无法正确引用证书。我的第一个问题是这样的(我使用 Windows 7 作为问题的序言):

我应该在我的硬盘驱动器的哪个位置开始寻找证书?我使用 RailsInstaller 安装 Rails 3,我能找到的唯一靠近该位置的东西是在“Git”中,其中有一个带有 ca-path 文件的“cert”目录。但是,大多数人的参考是这个“/etc/certs/”或其他东西(基本上是一个相对的url)。我的问题是引用它的父目录在哪里?这可能非常简单,但我只是不知道。会不会是我在 C:/ 目录下的 RailsInstaller 文件夹?

【问题讨论】:

    标签: ruby-on-rails-3 ssl omniauth


    【解决方案1】:

    嗨,Vivek,我在 Windows 7 上解决了这个问题, 你可以从这里获得证书: https://gist.github.com/fnichol/867550

    因此,此证书的位置将是 C:\RailsInstaller\cacert.pem

    完整图像: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
    

    【讨论】:

      【解决方案2】:

      在我的 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 应用配置目录

      感谢这篇文章:

      【讨论】:

        猜你喜欢
        • 2013-05-30
        • 2015-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        相关资源
        最近更新 更多