【问题标题】:Sudden Certificate Verify Failed on Xero Public ApplicationXero 公共应用程序上的突然证书验证失败
【发布时间】:2016-12-07 06:43:07
【问题描述】:

我们的登台服务器完美地连接到我们的 Xero 公共应用程序,直到现在(2016 年 12 月 7 日)。由于某种奇怪的原因,它现在返回以下错误:

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

这是我们用来连接 Xero 的代码 sn-p。

@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 gem
  • 服务器上的 SSL 似乎没问题,根据检查 SSL 是否正确安装在站点中的 3rd 方站点;
  • 将 APP_KEY 和 APP_SECRET 更改为合作伙伴应用程序并将构造函数更改为 Xeroizer::PartnerApplication,并添加相关的额外参数(这意味着服务器 SSL 安装不是问题)。

【问题讨论】:

    标签: ruby-on-rails xero-api xeroizer


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    原来我们必须将ca_file 设置为 nil。

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

    这可能与 gem 附带的内置 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 设置,它会有不同的路径。

    【讨论】:

    • 如果这是您的解决方案,请勾选此答案为正确
    • @Sinkingpoint 我打算这样做,但我只能在明天接受我的解决方案(需要 2 天时间):)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2012-03-15
    • 2017-07-25
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多