1

需要后open-uri,可以通过Kernel#open. 但是,尝试使用 https 执行此操作会导致根证书错误,因为 ruby​​ 没有所有根证书。

这可以像这样解决,但那是为了使用Net::HTTP带有块的对象。

是否有一种优雅的方式来全局设置use_sslca_file用于Net::HTTP库,以便它将应用于我的整个应用程序以及类似的命令Kernel#open

4

1 回答 1

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

在这里进行更多描述:https ://gist.github.com/996510

于 2011-05-28T02:12:23.257 回答