SSL_connect возвращено = 1 errno = 0 состояние = SSLv3 прочитанный сертификат сервера B: сбой проверки сертификата - PullRequest
278 голосов
/ 24 декабря 2010

Я использую Authlogic-Connect для сторонних входов в систему.После выполнения соответствующих миграций логины Twitter / Google / Yahoo, кажется, работают нормально, но логин facebook выдает исключение:

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

В журнале разработчика отображается

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
  app/controllers/users_controller.rb:37:in `update'

Пожалуйста, предложите ..

Ответы [ 37 ]

4 голосов
/ 31 декабря 2010

Затем, как предполагает этот пост в блоге,

" Как вылечить Net :: Рискованное поведение HTTP по умолчанию HTTPS "

вы можете установить гем always_verify_ssl_certificates, который позволит вам установить значение по умолчанию для ca_file.

3 голосов
/ 19 ноября 2015

Если вы используете приложение rails локально, просто добавьте эту строку внизу application.rb.

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

После этого вы можете использовать приложение без проблем. Вы можете назвать это взломом, но это не рекомендуется. Используйте только тогда, когда вам нужно запустить локально

3 голосов
/ 03 мая 2013

OSX решение:

установить последнюю стабильную версию rvm

rvm get stable

использовать команду rvm для автоматического разрешения сертификатов

rvm osx-ssl-certs update all
2 голосов
/ 02 ноября 2016

Для меня сработала комбинация ответов, а именно:

# Reinstall OpenSSL
brew update
brew remove openssl
brew install openssl
# Download CURL CA bundle
cd /usr/local/etc/openssl/certs
wget http://curl.haxx.se/ca/cacert.pem
/usr/local/opt/openssl/bin/c_rehash
# Reinstall Ruby from source
rvm reinstall 2.2.3 --disable-binary
2 голосов
/ 25 августа 2011

Вот что я сделал, это помогло, если у вас возникли проблемы с леопардом.

Мой сертификат был старым и нуждался в обновлении. Я скачал это:

http://curl.haxx.se/ca/cacert.pem

Затем заменил мой сертификат, который был найден здесь, на Леопарде:

/usr/share/curl/curl-ca-bundle.crt

Перезагрузите все, что у вас есть, и вы должны быть в порядке!

2 голосов
/ 24 марта 2012

Только потому, что инструкции немного отличались от того, что сработало для меня, я решил добавить свои 2 цента:

Я на OS X Lion и использую macports и rvm

Я установил curl-ca-bundle:

sudo port install curl-ca-bundle

Затем я настроил свою конфигурацию omniauth следующим образом:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, APP_CONFIG['CONSUMER_KEY'], APP_CONFIG['CONSUMER_SECRET'],
           :scope => 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.profile',
           :ssl => {:ca_path => "/share/curl/curl-ca-bundle.crt"}
end
2 голосов
/ 23 мая 2015

Если у вас есть символическая ссылка в / usr / local / etc / openssl, указывающая на cert.pem, попробуйте сделать это:

ruby -ropenssl -e "p OpenSSL::X509::DEFAULT_CERT_FILE" (should be /usr/local/etc/openssl)
cd /usr/local/etc/openssl
wget http://curl.haxx.se/ca/cacert.pem
ln -s cacert.pem 77ee3751.0 (77ee3751.0 is my symbolic link, should depend on the openssl version)
1 голос
/ 19 марта 2016

Добавление gem 'certified', '~> 1.0' к моему Gemfile и запуск bundle решили эту проблему для меня.

1 голос
/ 15 марта 2016

Иногда это не всегда проблема РВМ в MAC OSX, если вы удалите .rvm, проблема по-прежнему (особенно при резервном копировании данных из timemachine), вы можете попробовать следующим образом.

1.brew update
2.brew install openssl
1 голос
/ 25 апреля 2014

У меня были проблемы в течение нескольких дней, и я взламывал их. Эта ссылка оказалась чрезвычайно полезной для меня. Это помогло мне сделать успешное обновление SSL на MAC OS X 9.

...