SSL and OpenSSL::SSL::SSLServer accept()

i need to make secure connection between this rubyserver and web-browser

ruby code:

require “openssl”
require ‘socket’
port = 443
ctx = OpenSSL::SSL::SSLContext.new()
ctx.ciphers = “ADH”
tcps = TCPServer.new(port)
ssls = OpenSSL::SSL::SSLServer.new(tcps, ctx)
while (session = ssls.accept) # !program interrupts here!
puts session.gets
session.puts Time.new
session.close
end

in browser i enter “127.0.0.1:443” and in console i can watch

bash:

[[email protected] rubyserv]# ./rubyserv.rb
/usr/lib/ruby/1.8/openssl/ssl.rb:122:in accept': http request (OpenSSL::SSL::SSLError) from /usr/lib/ruby/1.8/openssl/ssl.rb:122:inaccept’
from ./rubyserv.rb:8

what i do wrong?

Well though somebody

Good Evening (or maybe morrning in your neck of the world)

On Fri, Sep 25, 2009 at 1:41 PM, born in USSR [email protected] wrote:

while (session = ssls.accept) # !program interrupts here!
puts session.gets
session.puts Time.new
session.close
end

in browser i enter “127.0.0.1:443” and in console i can watch

First, you are making a http://127.0.0.1:443 call from your browser to
an
https server - http != https :slight_smile:

Second, I would strongly suggset you not go down this path - you want to
write your ruby server/app and not an https server. Tools like nginx +
thin

  • rack (with your app attaching as a rack middleware) would make so much
    more sense in 99% of cases. It might take a small amount of time to
    write up
    the config files for the pieces but they are strong solid workhorses
    that
    you aren’t going to readily duplicate.

John

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs