我try 通过https连接访问具有开放uri的文件.不幸的是,我的证书有certificate verify failed处错误.我对此无能为力,所以我不得不绕过验证.

我找到了这个answer

我不想/无法更改oen uri.我在服务器上运行Ruby 1.8.6.

如何更改验证模式?或者更确切地说,我应该在哪里更改它?

我能把这个放哪儿?

if target.class == URI::HTTPS  
 require 'net/https'  
 http.use_ssl = true   
 http.verify_mode = OpenSSL::SSL::VERIFY_NONE  
 store = OpenSSL::X509::Store.new  
 store.set_default_paths  
 http.cert_store = store
end

或者是肮脏的黑客:我可以把这个放在哪里?

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

推荐答案

Warning, do not do this in production, you are disabling SSL completely this way.

如果您真的不想使用证书验证的额外安全性,并且可以升级到Ruby 1.9.3p327+,那么可以将ssl_verify_mode选项传递给open方法.举个例子,我是这样做的:

request_uri=URI.parse('myuri?that_has=params&encoded=in_it&optionally=1')

# The params incidentally are available as a String, via request_uri.query
output = open(request_uri, {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE})
obj = JSON.parse output.readlines.join("")

Ruby-on-rails相关问答推荐

为什么Rails数值验证器不使用规格化值?

Rails7--如何使用内联代码仅为操作运行BEFORE操作

是否可以使用 Turbo 帧更新 Rails 表单输入字段值?

如何使用继承类 (STI) 获取 Ruby on Rails 类中基类的实例

如何保持 en.yml DRY?

线程如何在 Web 应用程序中工作?

您将如何在 Ruby on Rails 应用程序中使用 rSpec 测试观察者?

Rails 模型方法 self.与普通

上传图片 Ruby on Rails

运行多个 Rails Server 实例

rspec 共享示例与共享上下文

Rails 在关联模型中排序

带有 master.key 的 Rails 5.2 - Heroku 部署

格式化日期对象以显示人类可读的日期

是否可以设置 travis 来运行多种语言的测试?

Ruby 根据属性在数组中查找并返回对象

rails respond_to format.js API

如何在 Rails 中设置路由的默认格式?

在 Ruby on Rails 中的控制器中获取 URL 的锚部分

Rails:在 link_to 中保留 GET 查询字符串参数