From 9368ff83e3d3867f5d68513b575aa6eeff2f37f4 Mon Sep 17 00:00:00 2001 From: danielsdeleo Date: Thu, 24 Oct 2013 15:50:16 -0700 Subject: Add ssl-serve script for future manual test needs --- spec/scripts/ssl-serve.rb | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 spec/scripts/ssl-serve.rb diff --git a/spec/scripts/ssl-serve.rb b/spec/scripts/ssl-serve.rb new file mode 100644 index 0000000000..24ed70addc --- /dev/null +++ b/spec/scripts/ssl-serve.rb @@ -0,0 +1,52 @@ +# ssl-serve.rb +# USAGE: ruby ssl-serve.rb +# +# ssl-serve is a script that serves a local directory over SSL. +# You can use it to test various HTTP behaviors in chef, like chef-client's +# `-j` and `-c` options and remote_file with https connections. +# +require 'pp' +require 'openssl' +require 'webrick' +require 'webrick/https' + + +$ssl = true + +CHEF_SPEC_DATA = File.expand_path("../../data", __FILE__) +cert_text = File.read(File.expand_path("ssl/chef-rspec.cert", CHEF_SPEC_DATA)) +cert = OpenSSL::X509::Certificate.new(cert_text) +key_text = File.read(File.expand_path("ssl/chef-rspec.key", CHEF_SPEC_DATA)) +key = OpenSSL::PKey::RSA.new(key_text) + +server_opts = {} +if $ssl +server_opts.merge!( { :SSLEnable => true, + :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE, + :SSLCertificate => cert, + :SSLPrivateKey => key }) +end + + + +# 5 == debug, 3 == warning +LOGGER = WEBrick::Log.new(STDOUT, 5) +DEFAULT_OPTIONS = { + :server => 'webrick', + :Port => 9000, + :Host => 'localhost', + :environment => :none, + :Logger => LOGGER, + :DocumentRoot => File.expand_path("/tmp/chef-118-sampledata") + #:AccessLog => [] # Remove this option to enable the access log when debugging. +} + +webrick_opts = DEFAULT_OPTIONS.merge(server_opts) +pp :webrick_opts => webrick_opts + +server = WEBrick::HTTPServer.new(webrick_opts) +trap 'INT' do server.shutdown end + +server.start + + -- cgit v1.2.1