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

**URL:** <https://www.ruby-forum.com/t/ssl-and-openssl-sslserver-accept/176183>\
**Category:** Ruby\
**Created:** [September 25, 2009, 10:41pm UTC](https://www.ruby-forum.com/t/ssl-and-openssl-sslserver-accept/176183 "2009-09-25T22:41:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![born\_in\_USSR](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/2bfe46/32.png) [@born\_in\_USSR](https://www.ruby-forum.com/u/born_in_USSR)\
**Post date:** [September 25, 2009, 10:41pm UTC](https://www.ruby-forum.com/t/ssl-and-openssl-sslserver-accept/176183/1 "2009-09-25T22:41:54Z")

</div>

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:

> [root@COR 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:in`accept’  
> from ./rubyserv.rb:8

what i do wrong?

---

<div class="post-metadata">

**Author:** ![born\_in\_USSR](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/2bfe46/32.png) [@born\_in\_USSR](https://www.ruby-forum.com/u/born_in_USSR)\
**Post date:** [September 27, 2009, 3:08am UTC](https://www.ruby-forum.com/t/ssl-and-openssl-sslserver-accept/176183/2 "2009-09-27T03:08:41Z")

</div>

Well though somebody

---

<div class="post-metadata">

**Author:** ![born\_in\_USSR](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/2bfe46/32.png) [@born\_in\_USSR](https://www.ruby-forum.com/u/born_in_USSR)\
**Post date:** [September 27, 2009, 3:47am UTC](https://www.ruby-forum.com/t/ssl-and-openssl-sslserver-accept/176183/3 "2009-09-27T03:47:14Z")

</div>

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

On Fri, Sep 25, 2009 at 1:41 PM, born in USSR [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](http://127.0.0.1:443) call from your browser to  
an  
https server - http != https 🙂

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
