我正在使用 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'
请建议..
我在尝试使用 Rails 3 的 JQuery 生成器时遇到了类似的问题
我是这样解决的:
获取 CURL 证书颁发机构 (CA) bundle 。您可以通过以下方式执行此操作:
sudo port install curl-ca-bundle
[如果您使用的是 MacPorts]
- 或者直接拉下来
wget http://curl.haxx.se/ca/cacert.pem
执行试图验证 SSL 认证的 ruby 代码:SSL_CERT_FILE=/opt/local/etc/certs/cacert.pem rails generate jquery:install
。在您的情况下,您想将其设置为服务器在某处获取它的环境变量,或者添加类似 ENV['SSL_CERT_FILE'] =/path/to/your/new/cacert.pem
在您的 environment.rb 文件中。
您也可以只将 CA 文件(我还没有尝试过)安装到操作系统——有冗长的说明 here -- 这应该以类似的方式工作,但我没有亲自尝试过。
基本上,您遇到的问题是某些 Web 服务正在使用针对 OpenSSL 无法验证的 CA 签名的证书进行响应。
我是一名优秀的程序员,十分优秀!