Ruby on rails curl -k -u

时间:2016-04-07 14:20:05

标签: ruby-on-rails ruby curl

我正在尝试相当于

 curl -u username -k https://my-site.com

到目前为止,我已经关注http://ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html了。我试过了:

uri = URI('https://my-site.com')

Net::HTTP.start(uri.host, uri.port,
                :use_ssl => uri.scheme == 'https') do |http|
  request = Net::HTTP::Get.new uri

  response = http.request request # Net::HTTPResponse object
end

我收到了SSL错误。 我可以在终端上卷曲它。 不确定如何提供密码和用户名

req.basic_auth 'user', 'password'

没有帮助。

我得到的错误:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

它正在使用cURL,因为-k选项会跳过服务器证书的验证。您可以使用Net::HTTP获得类似的行为,但如果您要将其设置为公共站点,则需要修复服务器的配置。

要立即在Ruby中获取-k行为,请设置verify_mode

Net::HTTP.start(uri.host, uri.port,
                :use_ssl => uri.scheme == 'https') do |http|
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Get.new uri
  response = http.request request # Net::HTTPResponse object
end