ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed

标签 ruby-on-rails ruby ssl authlogic facebook-graph-api

我正在使用 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 生成器时遇到了类似的问题

我是这样解决的:

  1. 获取 CURL 证书颁发机构 (CA) bundle 。您可以通过以下方式执行此操作:

    • sudo port install curl-ca-bundle [如果您使用的是 MacPorts]
    • 或者直接拉下来wget http://curl.haxx.se/ca/cacert.pem
  2. 执行试图验证 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 签名的证书进行响应。

关于ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562237/

相关文章:

java - 无法在 spring rest 模板客户端中找到请求目标的有效认证路径

python - 如何使用Python编程语言发送带有客户端证书的https请求

javascript - 如何在加载下一页之前保持远程表单上的提交按钮处于禁用状态

ruby-on-rails - will_paginate NoMethodError

ruby-on-rails - rails 3 has_many 到 has_one

ruby - 如何编写 expect {}.to raise_error when rspec's syntax is configured with only should

ruby-on-rails - Docker:服务器是否在主机 “localhost”(::1)上运行并在端口5432上接受TCP/IP连接?

ruby-on-rails - 如何按天而不是日期分组?

ruby - 允许 block 处理可变数量参数的干净方法是什么?

python - 如何修复 websocket-client Python 模块中的 CERTIFICATE_VERIFY_FAILED 错误?