我收到此错误:
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上的所有多个选项,但似乎没有任何效果,有人可以帮我解释为什么我会收到此错误吗?
谢谢
答案 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
是绕过证书验证的代码行。
我希望它有所帮助