WEBrick::HTTPServer config


#1

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


#2

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.


#3

Did you check:
http://microjet.ath.cx/webrickguide/html/html_webrick.html
& http://microjet.ath.cx/webrickguide/html/Server_Configuration.html
in specific?

Cheers,

Patrick.


#4

Patrick Wauters wrote:

Did you check:
http://microjet.ath.cx/webrickguide/html/html_webrick.html
& http://microjet.ath.cx/webrickguide/html/Server_Configuration.html
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