在要求open-uri
之后,可以通过Kernel#open
方便地从网上下载和使用文件。但是,尝试使用https执行此操作会导致root证书错误,因为ruby没有所有根证书。
这可以解决like this,但那是使用带有块的Net::HTTP
对象。
是否有一种优雅的方式可以为use_ssl
库全局设置ca_file
和Net::HTTP
,以便它适用于我的整个应用,以及Kernel#open
等命令?
答案 0 :(得分:3)
好吧,几个小时后我想出了这个:
require 'open-uri'
require 'net/https'
module Net
class HTTP
alias_method :original_use_ssl=, :use_ssl=
def use_ssl=(flag)
self.ca_file = "/path/to/ca-bundle.crt"
self.original_use_ssl = flag
end
end
end