2012-01-12 2 views
1

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

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

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

ответ

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 

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

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

0

Привет Вивек Я решить эту проблему на Windows 7, вы можете получить сертификат здесь: https://gist.github.com/fnichol/867550

Так место для этого сертификата будет C: \ RailsInstaller \ cacert.pem

Полное изображение: конфиг \ инициализаторы \ 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 
Смежные вопросы