2016-12-07 35 views
0

我们的登台服务器连接到我们的Xero公共应用程序完全正常,直到现在(2016年12月7日)。由于一些奇怪的原因,它现在已经返回了以下错误:Xero公开申请突然证书验证失败

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

下面是我们使用连接到Xero的代码片段。

@xero_client = Xeroizer::PublicApplication.new(APP_KEY, APP_SECRET, :logger => Logger.new('log/xero.log', 'weekly') request_token = @xero_client.request_token(:oauth_callback => "#{APP_DOMAIN}/oauth/callback")

然后该应用失败在这条线,并抛出上述指定SSLError

任何人都知道这个的根本原因?

详情:

  • 我们使用Ubuntu 14.04 (Trusty)
  • 我们使用Ruby on Rails 4.1.7Ruby 2.1.8p440
  • 我们使用Xeroizer 2.16.4宝石
  • SSL服务器上看起来不错,但按照与第三方检查检查SSL是否在网站中正确安装的网站;
  • 将APP_KEY和APP_SECRET更改为合作伙伴应用程序,并将构造函数更改为Xeroizer::PartnerApplication,并添加相关的额外参数(即服务器SSL安装为而不是问题)。

回答

2

我们也遇到了这个问题 - 更新到版本2.16.5 Xeroizer gem为我们解决了这个问题。

+2

这是Xeroizer的维护人员在[this Github issue]底部附近提到的正确答案(https://github.com/waynerobinson/xeroizer/issues/285#issuecomment-265017377) – MJMortimer

0

原来我们必须将ca_file设为零。

@xero_client.client.consumer_options[:ca_file] = nil

这可能与附带的宝石是过时的事实,内置ca-certificates.crt做。

在我们的服务器中,xeroizer crt文件位于/home/deploy/.bundler/mergethat/ruby/2.1.0/gems/xeroizer-2.16.4/lib/xeroizer/ca-certificates.crt。根据你的ruby gem/bundler/rvm设置,它将有不同的路径。

+0

如果这是您的解决方案,请将此答案标记为正确,并使用勾号<--- – Sinkingpoint

+0

@Sinkingpoint我有意这样做,但我明天只能接受我的解决方案(需要2天时间): ) –

相关问题