Forum: Ruby WEBrick::HTTPServer config

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mike H. (Guest)
on 2007-01-31 17:38
I've copied some basic code for an HTTPS server

===============
require 'webrick'
require 'webrick/https'

httpserver = WEBrick::HTTPServer.new(
  :Port            => 2000,
  :DocumentRoot    => Dir::pwd + "/htdocs",
  :SSLEnable       => true,
  :SSLVerifyClient => ::OpenSSL::SSL::VERIFY_NONE,
  :SSLCertName => [ ["C","JP"], ["O","WEBrick.Org"], ["CN", "WWW"] ]
)
===============

My question is does anyone know the full set of parameters that can be
supplied to HTTPServer.new ?
I can't find anything the the documentation and google/websearch doesn't
give much.

Thanks
Eric H. (Guest)
on 2007-01-31 21:07
(Received via mailing list)
On Jan 31, 2007, at 07:38, Mike Houghton wrote:

>   :SSLVerifyClient => ::OpenSSL::SSL::VERIFY_NONE,
>   :SSLCertName => [ ["C","JP"], ["O","WEBrick.Org"], ["CN", "WWW"] ]
> )
> ===============
>
> My question is does anyone know the full set of parameters that can be
> supplied to HTTPServer.new ?
> I can't find anything the the documentation and google/websearch
> doesn't
> give much.

WEBrick::Config has a bunch more.
Patrick W. (Guest)
on 2007-02-01 17:30
(Received via mailing list)
Mike H. (Guest)
on 2007-02-01 17:47
Patrick Wauters wrote:
> Did you check:
> http://microjet.ath.cx/webrickguide/html/html_webrick.html
> & http://microjet.ath.cx/webrickguide/html/Server_Co...
> in specific?
>
> Cheers,
>
> Patrick.
> --

Thanks for the replies guys.

I've got a little further but still struggling (Ruby newbie!)
I've created an SSL key (key.pem) and certificate (cert.pem) using
OpenSSL and have incorporated them into ruby like this

================
pkey = cert = cert_name = nil
begin

  pkey =
OpenSSL::PKey::RSA.new(File.read("/home/mhoughton/sslcert/key.pem"))

  cert =
OpenSSL::X509::Certificate.new(File.read("/home/mhoughton/sslcert/cert.pem"))
rescue
  $stderr.puts "Switching to use self-signed certificate"
  cert_name = [ ["C","JP"], ["O","WEBrick.Org"], ["CN", "WWW"] ]
end


s=WEBrick::HTTPServer.new(

  :Port             => 8080,
  :Logger           => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG),
  :DocumentRoot     => "/usr/local/webrick/htdocs",
  :SSLEnable        => true,
  #:SSLVerifyClient  => OpenSSL::SSL::VERIFY_NONE,
  :SSLCertificate   => cert,
  :SSLPrivateKey    => pkey,
  :SSLCertName      => cert_name
)
s.start
==============

The key and certificate files are present(!) and can be read using
File.read()
but the code bombs out on RSA.new() ( or on Certificate.new if I swap
the order)
and the rescue block is executed and the created HTTPServer doesn't use
the supplied key and certificate.

What am I doing wrong?

Thanks

Mike
This topic is locked and can not be replied to.