环境:
rails 4.2.6
ruby 2.3.0
系统:
deepin
Gem:
soap4r
代码:
driver = SOAP::RPC::Driver.new("https://xxx")
driver.add_method('method', 'value1', 'value2', 'value3')
driver.method(value1, value2, value3)
异常:
SSL_connect returned=1 errno=0 state=error: certificate verify failed
我想要跳过证书的验证,试过 google 很多方式无果...,请各位大神指教!
尝试使用
driver.options['protocol.http.ssl_config.ca_file'] = nil
driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE
or
driver.options['protocol.http.ssl_config.verify_mode'] = nil
依然没有解决...
最后使用使用 HTTP 模拟 SOAP 发送 XML 的过程,然后让 HTTP 跳过证书验证后解决次问题!
param = "your xml to string"
uri = URI.parse("https://xxx")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == "https"
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.start {
http.request_post(uri, params) {|res|
print res.body
}
}