Skip to content

Instantly share code, notes, and snippets.

@EntityB
Created December 14, 2017 15:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save EntityB/a57a8758dc0405ad4079c4d147ecfdff to your computer and use it in GitHub Desktop.
Save EntityB/a57a8758dc0405ad4079c4d147ecfdff to your computer and use it in GitHub Desktop.
HTTPS server with CORS and python
#!/usr/bin/env python2
# generate server.xml with the following command:
# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
# add it to PATH
# Run as follow:
# pyserver
# pyserver 8085
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer
import ssl, sys, os
class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header('Access-Control-Allow-Origin', '*')
SimpleHTTPRequestHandler.end_headers(self)
targetPort = int(sys.argv[1]) if len(sys.argv) >= 2 else 8080
dir = os.path.dirname(__file__)
certFilePath = os.path.join(dir, 'server.pem')
httpd = HTTPServer(('localhost', targetPort), CORSRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile=certFilePath, server_side=True)
print("Start HTTPS server with CORS enabled on https://localhost:" + str(targetPort))
httpd.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment