Skip to content

Instantly share code, notes, and snippets.

@DannyHinshaw
Forked from guyo13/simple-https-server.py
Last active April 8, 2024 04:16
Show Gist options
  • Star 43 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save DannyHinshaw/a3ac5991d66a2fe6d97a569c6cdac534 to your computer and use it in GitHub Desktop.
Save DannyHinshaw/a3ac5991d66a2fe6d97a569c6cdac534 to your computer and use it in GitHub Desktop.
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
# generate server.pem with the following command:
# openssl req -new -x509 -keyout key.pem -out server.pem -days 365 -nodes
# run as follows:
# python simple-https-server.py
# then in your browser, visit:
# https://localhost:4443
import http.server
import ssl
server_address = ('localhost', 4443)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,
server_side=True,
certfile="server.pem",
keyfile="key.pem",
ssl_version=ssl.PROTOCOL_TLS)
httpd.serve_forever()
@xNul
Copy link

xNul commented Apr 8, 2024

None of these worked for me, but twistd -no web --path=. --https=443 -c cert.pem -k key.pem did. Can be installed via pip install twisted. I was able to use a Let's Encrypt certificate generated by certbot so it can be used across the internet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment