我使用Authlogic-Connect第三方登录。在运行适当的迁移后,Twitter/谷歌/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'

请建议. .


当前回答

我有好几天都遇到了麻烦,到处乱闯。这个链接证明对我非常有帮助。它帮助我在MAC OS X 9上成功升级了SSL。

其他回答

如果你在OS X上使用RVM,你可能需要运行这个:

rvm osx-ssl-certs update all

更多信息请访问:http://rvm.io/support/fixing-broken-ssl-certificates

完整的解释如下:https://github.com/wayneeseguin/rvm/blob/master/help/osx-ssl-certs.md


更新

在Ruby 2.2上,你可能需要从源代码重新安装Ruby来解决这个问题。以下是如何(将2.2.3替换为Ruby版本):

rvm reinstall 2.2.3 --disable-binary

感谢https://stackoverflow.com/a/32363597/4353和伊恩·康纳。

添加到你的gemfile:

git => git://github.com/ yaauie/clivers, ref => 5617c

这招对我很管用

rvm pkg install openssl
rvm reinstall 1.9.2 --with-openssl-dir=$rvm_path/usr

我的ubuntu 12.04的openssl实现有问题

下面是用于调试的另一个选项。

请确保永远不要在任何生产环境中使用它,因为它首先就会抵消使用SSL的好处。只有在您的本地开发环境中才可以这样做。

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

我有好几天都遇到了麻烦,到处乱闯。这个链接证明对我非常有帮助。它帮助我在MAC OS X 9上成功升级了SSL。