Problem
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `connect' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `block in connect' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:68:in `timeout' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/timeout.rb:99:in `timeout' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799:in `connect' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:755:in `do_start' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:750:in `start' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:535:in `do_rpc' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:420:in `call2' from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/xmlrpc/client.rb:410:in `call' from /path/infusionsoft/connection.rb:15:in `connection' from /path/infusionsoft/request.rb:29:in `request' from /path/infusionsoft/request.rb:5:in `get' from /path/infusionsoft/client/contact.rb:59:in `contact_find_by_email' from /path/infusionsoft.rb:18:in `method_missing' from (irb):2 from /path/rails/commands/console.rb:45:in `start' from /path/rails/commands/console.rb:8:in `start' from /path/rails/commands.rb:40:in `<top (required)>' from ./script/rails:6:in `require' from ./script/rails:6:in
Solution
To work this around, we need to overwrite use_ssl method:
module Net class HTTP def use_ssl=(flag) flag = flag ? true : false if started? and @use_ssl != flag raise IOError, "use_ssl value changed, but session already started" end @use_ssl = flag if @use_ssl self.verify_mode = OpenSSL::SSL::VERIFY_NONE end end end end