Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
# generate server.xml 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()
@MarkLeMerise

This comment has been minimized.

Copy link

commented Apr 23, 2019

@DannyHinshaw

This comment has been minimized.

Copy link
Owner Author

commented May 14, 2019

Updated, thanks!

@dustinfreeman

This comment has been minimized.

Copy link

commented Jun 6, 2019

This server works when visiting the https server on my desktop, but I can't visit it from Android or iOS devices on the same network. Is this expected behaviour?

@DannyHinshaw

This comment has been minimized.

Copy link
Owner Author

commented Jun 7, 2019

@dustinfreeman yes that is expected, you would need to do more to connect externally to a server running on your desktop via another device. Have you tried something like this? https://stackoverflow.com/a/4779992/5750392

@dustinfreeman

This comment has been minimized.

Copy link

commented Jun 7, 2019

@DannyHinshaw Yes, my phone is on the same network, and I’m trying to connect to <my computer’s IP>:4443

With the same setup, I’ve been able to connect my mobile devices to my machine with the built-in http server, ie.
python -m http.server 4443

I wonder if there’s a problem with the cert? Both my phones treated the site as if it didn’t exist instead of throwing any warning.

@DannyHinshaw

This comment has been minimized.

Copy link
Owner Author

commented Jun 7, 2019

That's strange, I'm really not sure why that's happening, I haven't used it in that way yet.

@sandsjd

This comment has been minimized.

Copy link

commented Jun 10, 2019

So I am new to Python and real computer languages and techniques. What is meant in the comment by generate an XML with "open...-nodes"?
I understand that I need to run the python code in cmd, but what does the XML file do and what is it supposed to look like? i ran the basic http code before using:
python -m http.server
but i didnt realize that it had to be a secure server for what I needed.

@pinkas

This comment has been minimized.

Copy link

commented Aug 2, 2019

Works fine when trying to access it from the same computer it's running from but when trying to access it from another device it does not work for me. I just replace localhost with the local ip address. Any idea ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.