-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsinatra_ssl.rb
More file actions
26 lines (22 loc) · 904 Bytes
/
sinatra_ssl.rb
File metadata and controls
26 lines (22 loc) · 904 Bytes
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
# see https://stackoverflow.com/questions/2362148/how-to-enable-ssl-for-a-standalone-sinatra-app
require 'webrick/https'
module Sinatra
class Application
def self.run!
certificate_content = File.open(ssl_certificate).read
key_content = File.open(ssl_key).read
server_options = {
:Host => bind,
:Port => port,
:SSLEnable => true,
:SSLCertificate => OpenSSL::X509::Certificate.new(certificate_content),
:SSLPrivateKey => OpenSSL::PKey::RSA.new(key_content)
}
Rack::Handler::WEBrick.run self, server_options do |server|
[:INT, :TERM].each { |sig| trap(sig) { server.stop } }
server.threaded = settings.threaded if server.respond_to? :threaded=
set :running, true
end
end
end
end