如何使用Faraday通过含自签名证书的HTTPS代理发起请求?
如何在Faraday 2.9.0中实现类似curl
--proxy-insecure的功能 你当前的配置里,ssl: { verify: false }是用来关闭目标服务器(httpbin.org)的SSL证书验证,但你的问题出在代理服务器的自签名证书上——Faraday默认会验证代理服务器的SSL证书,这才是导致Connection reset by peer的原因。
要实现curl --proxy-insecure的效果,需要单独给代理配置SSL验证关闭的选项,而非依赖全局的ssl配置。修改后的完整代码如下:
conn = Faraday.new( url: 'https://httpbin.org', proxy: { uri: 'https://<PROXY-IP>:<PROXY-PORT>', ssl: { verify: false } # 此配置对应curl的--proxy-insecure,关闭代理服务器的SSL证书验证 } ) do |x| x.request :url_encoded x.adapter :net_http end
如果目标服务器本身也使用自签名证书需要跳过验证,再保留全局的ssl: { verify: false }配置即可,否则可以移除该全局配置。
注意:关闭SSL证书验证会降低通信安全性,仅建议在测试环境使用,生产环境请确保代理服务器部署可信的SSL证书。
内容的提问来源于stack exchange,提问作者Fazakas Istvan
相关产品推荐
相关产品推荐

