Ошибка SSL OmniAuth в Ruby on Rails - PullRequest
       22

Ошибка SSL OmniAuth в Ruby on Rails

1 голос
/ 12 января 2012

Я много читал об этой ошибке, особенно в OmniAuth for Rails 3. У меня есть несколько вопросов, потому что в настоящее время я застрял на ней.

Консенсус в этой записи заключался в том, что он не мог ссылаться на сертификаты должным образом.Мой первый вопрос (я использую Windows 7 для предисловия):

Где именно на моем жестком диске я начал бы искать сертификаты?Я использовал RailsInstaller для установки Rails 3, и единственное, что я могу найти, это близко к этому расположению, в «Git», где есть каталог «cert» с файлом ca-path.Тем не менее, ссылка, которая есть у большинства людей, это "/ etc / certs /" или что-то в этом роде (в основном, относительный URL).Мой вопрос, где находится родительский каталог, из которого это ссылка?Это может быть очень просто, но я просто не знаю.Это будет моя папка RailsInstaller в каталоге C: /?

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

В моем config \ initializer \ 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

файл cacert.pem из http://curl.haxx.se/ca/ помещен в каталог конфигурации вашего rails приложения

благодаря этим сообщениям:

0 голосов
/ 11 июня 2013

Привет 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
...