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:in
block 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:in
connect'
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:in
start'
C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:1367:in request'
app/controllers/profiles_controller.rb:20:in
httpwork'
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:in
process_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:in
block 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:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:229:in block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:229:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:229:in block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:86:in
call'
activesupport (4.1.2) lib/active_support/callbacks.rb:86:in run_callbacks'
actionpack (4.1.2) lib/abstract_controller/callbacks.rb:19:in
process_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:in
block 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:in
instrument'
activesupport (4.1.2) lib/active_support/notifications.rb:159:in instrument'
actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:30:in
process_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:in
process_action'
actionpack (4.1.2) lib/abstract_controller/base.rb:136:in process'
actionview (4.1.2) lib/action_view/rendering.rb:30:in
process'
actionpack (4.1.2) lib/action_controller/metal.rb:196:in dispatch'
actionpack (4.1.2) lib/action_controller/metal/rack_delegation.rb:13:in
dispatch'
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:in
call'
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:in
call'
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:in
each'
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:in
call'
rack (1.5.2) lib/rack/etag.rb:23:in call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in
call'
rack (1.5.2) lib/rack/head.rb:11:in call'
actionpack (4.1.2) lib/action_dispatch/middleware/params_parser.rb:27:in
call'
actionpack (4.1.2) lib/action_dispatch/middleware/flash.rb:254:in call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in
context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in call'
actionpack (4.1.2) lib/action_dispatch/middleware/cookies.rb:560:in
call'
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:in
call'
activerecord (4.1.2) lib/active_record/migration.rb:380:in call'
actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:29:in
block 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:in
call'
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:in
call'
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:in
call'
railties (4.1.2) lib/rails/rack/logger.rb:38:in call_app'
railties (4.1.2) lib/rails/rack/logger.rb:20:in
block 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:in
tagged'
activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in tagged'
railties (4.1.2) lib/rails/rack/logger.rb:20:in
call'
actionpack (4.1.2) lib/action_dispatch/middleware/request_id.rb:21:in call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in
call'
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:in
call'
rack (1.5.2) lib/rack/lock.rb:17:in call'
actionpack (4.1.2) lib/action_dispatch/middleware/static.rb:64:in
call'
rack (1.5.2) lib/rack/sendfile.rb:112:in call'
railties (4.1.2) lib/rails/engine.rb:514:in
call'
railties (4.1.2) lib/rails/application.rb:144:in call'
rack (1.5.2) lib/rack/lock.rb:17:in
call'
rack (1.5.2) lib/rack/content_length.rb:14:in call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in
service'
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:in
run'
C:/Ruby200-x64/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
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
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With