相关疑难解决方法(0)

SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败

我正在使用Authlogic-Connect进行第三方登录.运行适当的迁移后,Twitter/Google/yahoo登录似乎工作正常但Facebook登录引发异常:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

开发日志显示

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'
Run Code Online (Sandbox Code Playgroud)

请建议..

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

279
推荐指数
17
解决办法
25万
查看次数

SSL错误安装rubygems时,无法从'https://rubygems.org/中提取数据

我正在尝试做Michael Hartl教程.当我尝试在我的gemset中安装rails 3.2.14时,我遇到以下问题:

$ gem install rails -v 3.2.14

错误:找不到有效的宝石'rails'(= 3.2.14),原因如下:

无法从https://rubygems.org/下载数据- SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz)

谷歌搜索后,我发现我可以使用非SSL源的rubygems,所以我运行:

sudo gem sources -a http://rubygems.org
Run Code Online (Sandbox Code Playgroud)

然后,当我再次尝试安装rails时,它成功了.但是,我仍然遇到上述问题,但作为警告:

警告:无法从" https://rubygems.org/ " 提取数据:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3 .rubygems.org/specs.4.8.gz)

如何完全删除此警告/错误?

我使用以下内容:

  • rvm 1.22.15
  • ruby 2.0.0p247(2013-06-27修订版41674)[x86_64-darwin12.3.0]
  • OSX 10.8.5

ruby ssl ruby-on-rails rvm

266
推荐指数
9
解决办法
14万
查看次数

OmniAuth和Facebook:证书验证失败

我已经按照Railscast#235尝试建立一个最小的Facebook身份验证.

我首先建立了一个Twitter身份验证,就像Ryan本人所做的那样.这完美无瑕.

然后我继续添加Facebook登录.但是,在授权应用程序后,重定向/auth/facebook/callback失败并显示:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

我正在使用localhost.我没有在应用程序中设置任何SSL.我究竟做错了什么?

facebook ruby-on-rails railscasts omniauth

65
推荐指数
6
解决办法
5万
查看次数

使用Ruby 1.9.3时"证书验证失败"OpenSSL错误

我在Mac OS 10.6.8上使用Ruby 1.9.3p0(使用rvm安装).当我尝试使用GitHub上托管应用程序模板创建一个新的Rails应用程序时,使用它(例如):

$ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O

我收到此错误消息:

/Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect 
returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 
(OpenSSL::SSL::SSLError)

据我所知,Ruby语言解释器使用OpenSSL连接到GitHub来请求应用程序模板文件.GitHub要求使用SSL进行所有连接.连接失败,因为OpenSSL无法验证服务器证书.

我可以通过下载证书文件来解决问题:

$ cd /opt/local/etc/openssl
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
$ sudo mv cacert.pem cert.pem

使用Ruby 1.9.2我没有问题.为什么我得到Ruby 1.9.3的"证书验证失败"问题?这是一个Ruby 1.9.3错误吗?它是否特定于Mac OS 10.6.8?我的解决方案是解决这个问题的正确方法吗?

ruby openssl ruby-on-rails rvm ruby-on-rails-3.1

18
推荐指数
3
解决办法
3万
查看次数

OpenSSL::SSL::SSLError: SSL_connect 返回=1 errno=0 state=error: 证书验证失败

我在 Heroku 上托管了 Rails API 服务器,它向客户端初始 API 请求中指定的回调 url 发出异步 POST 请求。

当我尝试通过 SSL POST 到我的客户之一的 web 应用程序时遇到问题。

connection = Faraday::Connection.new('https://subdomain.some_client.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/test'
Run Code Online (Sandbox Code Playgroud)

以下抛出错误:

Faraday::Error::ConnectionFailed: SSL_connect returned=1 errno=0 state=error: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

但是,如果我通过 HTTPS 发布到另一台服务器,例如谷歌,它工作正常

connection = Faraday::Connection.new('https://www.google.com', ssl: { ca_file: '/usr/lib/ssl/certs/ca-certificates.crt' })
connection.get '/'
Run Code Online (Sandbox Code Playgroud)

这是否意味着错误出在客户端的 SSL 配置上?如果是这样,我如何帮助他们调试问题?

更新:

我可以毫无问题地将 POST 卷曲到客户端的 web 应用程序,只有当我通过 ruby​​ 的 HTTP 库执行它时才会失败

非常感谢谢谢

ssl ruby-on-rails faraday

14
推荐指数
1
解决办法
3万
查看次数

connect:SSL_connect返回= 1 errno = 0 state = SSLv3读取服务器证书B:证书验证失败(OpenSSL :: SSL :: SSLError)

我很难获得SSL来验证证书.我完全不了解证书是如何运作的,所以这是一个重大的障碍.这是运行脚本时出现的错误:

c:/Ruby191/lib/ruby/1.9.1/net/http.rb:611:in `connect': SSL_connect returned=1 e
rrno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL
::SSL::SSLError)
Run Code Online (Sandbox Code Playgroud)

这是相关的代码:

client = Savon::Client.new order_svc

request = client.create_empty_cart { |soap, http|
  http.auth.ssl.cert_file = 'mycert.crt'
  http.auth.ssl.verify_mode = :none
  http.read_timeout = 90
  http.open_timeout = 90
  http.headers = { "Content-Length" => "0", "Connection" => "Keep-Alive" }
  soap.namespaces["xmlns:open"] = "http://schemas.datacontract.org/2004/07/Namespace"
  soap.body = {
      "wsdl:brand" => brand,
      "wsdl:parnter" => [
        {"open:catalogName" => catalogName, "open:partnerId" => partnerId }
      ] }.to_soap_xml

      }
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

ruby ssl soap openssl savon

13
推荐指数
2
解决办法
2万
查看次数

Heroku Rails Net::HTTP: OpenSSL::SSL::SSLError: SSL_connect Returned=1 errno=0 state=SSLv3 读取服务器证书 B: 证书验证失败

我有一个在 Heroku 服务器上运行的 Rails 应用程序,但我无法通过 HTTPS 使用 Net::HTTP 与外部服务器进行通信。每当我尝试POST通过 HTTPS 访问外部专有 API时,我收到的错误是:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

我已经做了好几个小时的谷歌搜索,以寻找我遇到的问题的答案,但无济于事。这是我的环境:

  • Heroku Dyno 运行 Cedar 14(正在运行 Cedar 10,升级到 Cedar 14 以查看它是否会影响问题 - 不高兴)
  • 导轨 3.2.14rc2
  • 红宝石 2.1.2

“修复”我试过:

  • 运行certifiedgem(实际上似乎有助于通过 Omniauth 和 Google 的 API 进行通信)
  • Monkey-patch 从验证方法列表中删除 SSLv2、SSLv3。当我在 Heroku 服务器上的控制台中尝试此操作时,它对于 GET 方法似乎工作得很好,但是在尝试运行Net::HTTP::Post.new而不是尝试运行时似乎完全忽略了调整Net::HTTP::Get.new
  • 手动覆盖证书文件位置。我已经指定它使用操作系统的授权文件(在 Cedar-14 堆栈上是最新的),但仍然没有骰子。
  • 我还尝试在 Net::HTTP 对象上手动指定要使用但ssl_version="TLSv1_2"没有运气(它甚至一直报告相同的SSLv3相关错误)

在开发中本地运行时,通信似乎工作得很好(我使用了此处建议RVM …

ruby ssl ruby-on-rails heroku ruby-on-rails-3

5
推荐指数
1
解决办法
2068
查看次数