我正在尝试相当于
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
任何指针都会受到赞赏。
答案 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