1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
require 'openssl'
require 'rackup/handler/webrick'
require 'webrick'
require 'webrick/https'
require File.join(File.dirname(__FILE__), 'basic')
key_file = File.join(File.dirname(__FILE__), '..', 'data', 'excon.cert.key')
cert_file = File.join(File.dirname(__FILE__), '..', 'data', 'excon.cert.crt')
# Responds with generated certificate by default
# Responds with `excon.cert` for when SNI is `excon`
(defined?(Rackup) && Rackup || Rack)::Handler::WEBrick.run(Basic,
:Port => 9443,
:SSLEnable => true,
:SSLCertName => [%w{CN example.com}],
) do |server|
excon_vhost = ::WEBrick::HTTPServer.new(
:SSLEnable => true,
:Port => 9443,
:ServerName => "excon",
:SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open(key_file).read),
:SSLCertificate => OpenSSL::X509::Certificate.new(File.open(cert_file).read),
:SSLCACertificateFile => cert_file,
:SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
:DoNotListen => true
)
server.virtual_host excon_vhost
end
|