HTTP GET request using Ruby on Rails: OpenSSL :: SSL :: SSLError

I get 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

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

in httpwork.html.erb

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

Here is the 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 ' 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/travel/router.rb: 71: in block in call' actionpack (4.1.2) lib/action_dispatch/journey/router.rb:59:in ' actionpack (4.1.2) lib/action_dispatch/travel/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: start_thread ' >

+4
source share
1 answer

I really suspect that this might be the difference in the port you use. Must be 443 for HTTPS. Try the following:

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
+1
source

Source: https://habr.com/ru/post/1547849/


All Articles