2016-12-07 13 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をスロー。

誰もがこの根本原因を知っていますか?

詳細:

  • 我々は、我々は、サーバー上Xeroizer 2.16.4宝石
  • SSLを使用しているRuby on Rails 4.1.7Ruby 2.1.8p440
  • を使用しているUbuntu 14.04 (Trusty)
  • を使用しているサードパーティに確認どおり、OKらしいですSSLがサイトに正しくインストールされているかどうかを確認するサイト。
  • APP_KEYとAPP_SECRETをパートナーアプリケーションに変更し、コンストラクタをXeroizer::PartnerApplicationに変更して、関連する追加パラメータを追加します(サーバーのSSLインストールはではなく、の問題です)。

答えて

2

私たちはこの問題にも取り組んでいましたが、Xeroizer gemのバージョン2.16.5にアップデートすることで問題が解決しました。

+2

これは[このGithubの問題](https://github.com/waynerobinson/xeroizer/issues/285#issuecomment-265017377)の下部にあるXeroizerのメンテナーが述べた正解です。 – MJMortimer

0

私たちは、ca_fileをnilに設定する必要があります。

@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 setupに応じて異なるパスを持ちます。

+0

この答えが正しいとマークしてください。--- --- – Sinkingpoint

+0

@Sinkingpoint私はそれを行うことを意味していますが、私のソリューションは明日しか受け入れられません(2日必要です): ) –

関連する問題