API调用抛出SSL_connect错误

时间:2015-11-10 19:48:19

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

我收到此错误:

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上的所有多个选项,但似乎没有任何效果,有人可以帮我解释为什么我会收到此错误吗?

谢谢

1 个答案:

答案 0 :(得分:-1)

在连接到在SSL上运行的Web服务时,您必须基本绕过SSL证书验证。您可以使用以下代码段

来完成此操作
 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是绕过证书验证的代码行。 我希望它有所帮助

相关问题