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.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()
@MarkLeMerise

This comment has been minimized.

Copy link

MarkLeMerise commented Apr 23, 2019

@DannyHinshaw

This comment has been minimized.

Copy link
Owner Author

DannyHinshaw commented May 14, 2019

Updated, thanks!

@dustinfreeman

This comment has been minimized.

Copy link

dustinfreeman 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

DannyHinshaw 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

dustinfreeman 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

DannyHinshaw 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

sandsjd 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

pinkas 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 ?

@evandrix

This comment has been minimized.

Copy link

evandrix commented Nov 25, 2019

server.xml server.pem

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.