Hello,
I am trying to send a GET request to a https URL which requires passing
certificate, key and ca certificate to authenticate and getting below
error:
/usr/lib/ruby/1.8/net/http.rb:567:in `initialize': can't convert
OpenSSL::X509::Certificate into String (TypeError)
from /usr/lib/ruby/1.8/net/http.rb:567:in `new'
from /usr/lib/ruby/1.8/net/http.rb:567:in `connect'
from /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
from /usr/lib/ruby/1.8/net/http.rb:542:in `start'
from tp2:18
Code:
#!/usr/bin/ruby
require 'net/https'
require 'openssl'
server = "serverdomainname"
crt = File.read "crtfile"
ca = File.read "cafile"
key = File.read "keyfile"
uri = URI.parse("https://#{server}:8140")
session = Net::HTTP.new(uri.host, uri.port)
session.use_ssl = true
session.verify_mode = OpenSSL::SSL::VERIFY_NONE
session.ca_file = OpenSSL::X509::Certificate.new ca
session.cert = OpenSSL::X509::Certificate.new crt
session.key = OpenSSL::PKey::RSA.new key
res = session.start do |http|
http.get("/v1")
end
OpenSSL reads the certificate properly, format is pem, but net-https
gives error.
-Tuj
···
--
Posted via http://www.ruby-forum.com/.