from twisted.web import static, server, twcgi
def create_SSL_context(privkey_file, cacert_file):
if privkey_file is None or cacert_file is None:
raise AttributteError('To start SSL server privkey_file and cacert_file need to be specified')
from twisted.internet import ssl as twistedssl
ssl_context = twistedssl.DefaultOpenSSLContextFactory(privkey_file, cacert_file,)
return ssl_context
port = 4444
secure = True
root = static.File("/var/www")
root.putChild("pswd", twcgi.CGIDirectory("/var/www/pswd"))
root.putChild("filter", twcgi.CGIDirectory("/var/www/filter"))
root.putChild("abc", twcgi.CGIDirectory("/var/www/abc"))
if secure:
privkey_file='privkey_pp_vm.pem'
cacert_file='cacert_pp_vm.pem'
ssl_context = create_SSL_context(privkey_file, cacert_file)
reactor.listenSSL(port, server.Site(root), ssl_context)
print "Secure Server started on port: %s"%port
else:
reactor.listenSSL(port, server.Site(root))
print "Non-secure Server started on porti: %s"%port
reactor.run()