OpenSSL :: SSL :: SSLError - возвращено SSL_connect = 1 errno = 0 состояние = SSLv3 чтение сертификата сервера B: сбой проверки сертификата - PullRequest
1 голос
/ 29 января 2012

Я получаю эту ошибку:

OpenSSL::SSL::SSLError

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Rails.application.config.middleware.use OmniAuth::Builder do  
  provider :facebook, 'MY_APPID', 'SECRET', {:scope => 'publish_stream,email', :client_options => {:ssl => {:ca_path => "#{Rails.root}/config/cacert.pem"}}}
end

Действие:

def callback
  session['fb_auth'] = request.env['omniauth.auth']
  session['fb_token'] = session['fb_auth']['credentials']['token']
  session['fb_error'] = nil
render :text => request.env['omniauth.auth'].to_yaml  
end

Я пытался решить эту проблему, например:

Rails.application.config.middleware.use OmniAuth::Builder do  
  provider :facebook, 'MY_APPID', 'SECRET', {:scope => 'publish_stream,email', :client_options => {:ssl => {:verify => false}}}
end

и

Rails.application.config.middleware.use OmniAuth::Builder do  
  provider :facebook, 'MY_APPID', 'SECRET', {:scope => 'publish_stream,email', :client_options => {:ssl => {:ca_path => "#{Rails.root}/config/ca-bundle.crt"}}}
end

Где ca-bundle: http://certifie.com/ca-bundle/ca-bundle.crt.txt

Rails.application.config.middleware.use OmniAuth::Builder do  
  provider :facebook, 'MY_APPID', 'SECRET', {:scope => 'publish_stream,email', :client_options => {:ssl => {:ca_path => "#{Rails.root}/config/cacert.pem"}}}
end

Где cacert.pem: http://curl.haxx.se/ca/cacert.pem

Я использую Windows 7. Кто-нибудьесть решение по этому или я делаю что-то не так.В чем разница между .pem и .crt?

1 Ответ

0 голосов
/ 20 августа 2012

Ruby не может найти никаких корневых сертификатов.

Вот еще один вариант для отладки:

require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

Источник: https://stackoverflow.com/a/12032944/1047207 (Мой ответ на аналогичный вопрос)

Возможно, вы захотите взглянуть и на этот блог .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...