|
| 1 | +import ssl |
| 2 | +from optparse import OptionParser |
| 3 | +try: |
| 4 | + from BaseHTTPServer import HTTPServer |
| 5 | + from SimpleHTTPServer import SimpleHTTPRequestHandler |
| 6 | +except ImportError: |
| 7 | + from http.server import HTTPServer, SimpleHTTPRequestHandler |
| 8 | + |
| 9 | + |
| 10 | +if __name__ == '__main__': |
| 11 | + parser = OptionParser(usage='usage: %prog [options]', version='%prog 1.0') |
| 12 | + parser.add_option('--host', default='localhost', type='string', action='store', dest='host', |
| 13 | + help='hostname (localhost)') |
| 14 | + parser.add_option('--port', default=443, type='int', action='store', dest='port', help='port (443)') |
| 15 | + parser.add_option('--cert', default='./cert.pem', type='string', action='store', dest='cert', |
| 16 | + help='cert (./cert.pem)') |
| 17 | + parser.add_option('--key', default='./key.pem', type='string', action='store', dest='key', help='key (./key.pem)') |
| 18 | + parser.add_option('--ver', default=ssl.PROTOCOL_TLSv1, type=int, action='store', dest='ver', help='ssl version') |
| 19 | + |
| 20 | + (options, args) = parser.parse_args() |
| 21 | + |
| 22 | + # openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem |
| 23 | + httpd = HTTPServer((options.host, options.port), SimpleHTTPRequestHandler) |
| 24 | + httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True, ssl_version=options.ver, |
| 25 | + certfile=options.cert, keyfile=options.key) |
| 26 | + httpd.serve_forever() |
0 commit comments