1

私たちのステージング サーバーは、今まで (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 を Partner Application に変更し、コンストラクターを に変更し、Xeroizer::PartnerApplication関連する追加パラメーターを追加すると機能します (つまり、サーバー SSL のインストールは問題ではありません)。
4

2 に答える 2

3

私たちもこの問題に直面していまし2.16.5た.Xeroizer gemのバージョンに更新することで問題が解決しました.

于 2016-12-08T00:34:48.030 に答える
0

ca_filenilに設定する必要があることがわかりました。

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

ca-certificates.crtgem に付属しているビルトインが古くなっていることが関係している可能性があります。

私たちのサーバーでは、xeroizer crt ファイルは にあります/home/deploy/.bundler/mergethat/ruby/2.1.0/gems/xeroizer-2.16.4/lib/xeroizer/ca-certificates.crt。ruby gem/bundler/rvm の設定に応じて、パスが異なります。

于 2016-12-07T06:43:07.567 に答える