Wednesday, September 6, 2017

Secure HTML server as python script

from twisted.internet import protocol, reactor
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()


Followers

About Me