2016-12-07 40 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天時間): ) –

相關問題