6

I am getting the following error

OpenSSL::SSL::SSLError in ProfilesController#httpwork
SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A

Here is my code in profiles_controller.rb

def httpwork
    require "net/http"
    require "uri"
    require "openssl"

    http = Net::HTTP.new("00.000.00.000", 0000)
    http.use_ssl = true
    http.ssl_version = :SSLv3
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    request = Net::HTTP::Get.new("profileTest")

    response = http.request(request)
end

quick note that host/port numbers are hidden, but the formatting is like that (not like "stackoverflow.com/question")

in httpwork.html.erb

<h1>Profiles#httpwork</h1>
<%= @response.body %>

Here is full stacktrace

C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in connect' C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:inblock in connect' C:/Ruby200-x64/lib/ruby/2.0.0/timeout.rb:52:in timeout' C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:inconnect' C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:862:in do_start' C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:851:instart' C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:1367:in request' app/controllers/profiles_controller.rb:20:inhttpwork' actionpack (4.1.2) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (4.1.2) lib/abstract_controller/base.rb:189:inprocess_action' actionpack (4.1.2) lib/action_controller/metal/rendering.rb:10:in process_action' actionpack (4.1.2) lib/abstract_controller/callbacks.rb:20:inblock in process_action' activesupport (4.1.2) lib/active_support/callbacks.rb:113:in call' activesupport (4.1.2) lib/active_support/callbacks.rb:113:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.2) lib/active_support/callbacks.rb:229:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:229:in block in halting' activesupport (4.1.2) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.2) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.2) lib/active_support/callbacks.rb:166:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting' activesupport (4.1.2) lib/active_support/callbacks.rb:86:incall' activesupport (4.1.2) lib/active_support/callbacks.rb:86:in run_callbacks' actionpack (4.1.2) lib/abstract_controller/callbacks.rb:19:inprocess_action' actionpack (4.1.2) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:31:inblock in process_action' activesupport (4.1.2) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.2) lib/active_support/notifications/instrumenter.rb:20:ininstrument' activesupport (4.1.2) lib/active_support/notifications.rb:159:in instrument' actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:30:inprocess_action' actionpack (4.1.2) lib/action_controller/metal/params_wrapper.rb:250:in process_action' activerecord (4.1.2) lib/active_record/railties/controller_runtime.rb:18:inprocess_action' actionpack (4.1.2) lib/abstract_controller/base.rb:136:in process' actionview (4.1.2) lib/action_view/rendering.rb:30:inprocess' actionpack (4.1.2) lib/action_controller/metal.rb:196:in dispatch' actionpack (4.1.2) lib/action_controller/metal/rack_delegation.rb:13:indispatch' actionpack (4.1.2) lib/action_controller/metal.rb:232:in block in action' actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:82:incall' actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:82:in dispatch' actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:50:incall' actionpack (4.1.2) lib/action_dispatch/journey/router.rb:71:in block in call' actionpack (4.1.2) lib/action_dispatch/journey/router.rb:59:ineach' actionpack (4.1.2) lib/action_dispatch/journey/router.rb:59:in call' actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:678:incall' rack (1.5.2) lib/rack/etag.rb:23:in call' rack (1.5.2) lib/rack/conditionalget.rb:25:incall' rack (1.5.2) lib/rack/head.rb:11:in call' actionpack (4.1.2) lib/action_dispatch/middleware/params_parser.rb:27:incall' actionpack (4.1.2) lib/action_dispatch/middleware/flash.rb:254:in call' rack (1.5.2) lib/rack/session/abstract/id.rb:225:incontext' rack (1.5.2) lib/rack/session/abstract/id.rb:220:in call' actionpack (4.1.2) lib/action_dispatch/middleware/cookies.rb:560:incall' activerecord (4.1.2) lib/active_record/query_cache.rb:36:in call' activerecord (4.1.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:incall' activerecord (4.1.2) lib/active_record/migration.rb:380:in call' actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:29:inblock in call' activesupport (4.1.2) lib/active_support/callbacks.rb:82:in run_callbacks' actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:27:incall' actionpack (4.1.2) lib/action_dispatch/middleware/reloader.rb:73:in call' actionpack (4.1.2) lib/action_dispatch/middleware/remote_ip.rb:76:incall' actionpack (4.1.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call' actionpack (4.1.2) lib/action_dispatch/middleware/show_exceptions.rb:30:incall' railties (4.1.2) lib/rails/rack/logger.rb:38:in call_app' railties (4.1.2) lib/rails/rack/logger.rb:20:inblock in call' activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in block in tagged' activesupport (4.1.2) lib/active_support/tagged_logging.rb:26:intagged' activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in tagged' railties (4.1.2) lib/rails/rack/logger.rb:20:incall' actionpack (4.1.2) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.5.2) lib/rack/methodoverride.rb:21:incall' rack (1.5.2) lib/rack/runtime.rb:17:in call' activesupport (4.1.2) lib/active_support/cache/strategy/local_cache_middleware.rb:26:incall' rack (1.5.2) lib/rack/lock.rb:17:in call' actionpack (4.1.2) lib/action_dispatch/middleware/static.rb:64:incall' rack (1.5.2) lib/rack/sendfile.rb:112:in call' railties (4.1.2) lib/rails/engine.rb:514:incall' railties (4.1.2) lib/rails/application.rb:144:in call' rack (1.5.2) lib/rack/lock.rb:17:incall' rack (1.5.2) lib/rack/content_length.rb:14:in call' rack (1.5.2) lib/rack/handler/webrick.rb:60:inservice' C:/Ruby200-x64/lib/ruby/2.0.0/webrick/httpserver.rb:138:in service' C:/Ruby200-x64/lib/ruby/2.0.0/webrick/httpserver.rb:94:inrun' C:/Ruby200-x64/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'

2 Answers 2

2

I really suspect that it might be the difference in the port you are using. Should be 443 for HTTPS. Try this :

def httpwork
    require "net/http"

    uri = URI("https://yourhost.com/yourpath")
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    request = Net::HTTP::Get.new("/yourpath")
    response = http.request(request)
end
Sign up to request clarification or add additional context in comments.

Comments

1

Quick and dirty trick for local development: you can comment the http.use_ssl = true line or leave it uncommented and add the following line bellow : http.verify_mode = OpenSSL::SSL::VERIFY_NONE

It worked for me each time

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.