【问题标题】:API call throwing SSL_connect error [duplicate]API调用引发SSL_connect错误[重复]
【发布时间】:2016-02-11 19:42:54
【问题描述】:

我收到此错误:

Not a duplicated SSL_connect returned=1 errno=0 state=error: certificate verify failed OS El Capitan

在使用此代码进行 API 调用时:

require 'json'
require 'net/http'
url = 'https://touch-rate.com/o/analytics/dashboard?api_key='+ENV["API_KEY"]+'&app_id='+ENV["APP_ID"]%>
resp = Net::HTTP.get_response(URI.parse(url))
dashboard = JSON.parse(resp.body)

我的服务器最近更改为安全服务器,从那时起它一直抛出上述错误。

我已经在 Stackoverflow 上尝试了所有多个选项,但似乎没有任何效果,有人可以帮助我了解为什么会出现此错误吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby api ssl osx-elcapitan


    【解决方案1】:

    在连接到在 SSL 上运行的 Web 服务时,您基本上必须绕过 SSL 证书验证。您可以通过使用以下代码的 sn-p 来做到这一点

     uri = URI.parse(url)
     http = Net::HTTP.new(uri.host, uri.port)
     http.use_ssl = (uri.scheme == 'https')
     http.verify_mode = OpenSSL::SSL::VERIFY_NONE
     request = Net::HTTP::Post.new(uri.request_uri)
     response = http.request(request)
     dashboard = JSON.parse(resp.body)
    

    所以基本上http.verify_mode = OpenSSL::SSL::VERIFY_NONE 是绕过证书验证的代码行。 希望对你有帮助

    【讨论】:

    • 非常感谢!这对我有用:)
    • 您能否接受答案,以便其他人知道此解决方案有效。
    • 禁用 SSL 是一个危险的选择——你基本上是在向中间人攻​​击。这些问题可能与 OSX 升级有关,请参阅此处了解更多信息:stackoverflow.com/questions/4528101/…
    猜你喜欢
    • 2018-07-18
    • 2015-02-01
    • 1970-01-01
    • 2012-11-26
    • 2011-04-12
    • 1970-01-01
    • 2012-12-07
    • 2017-05-30
    • 2015-07-06
    相关资源
    最近更新 更多