Skip to content

Instantly share code, notes, and snippets.

@victory-sokolov
Created August 26, 2021 09:18
Show Gist options
  • Save victory-sokolov/0708c35096ce7369e9c18f77ac1f2716 to your computer and use it in GitHub Desktop.
Save victory-sokolov/0708c35096ce7369e9c18f77ac1f2716 to your computer and use it in GitHub Desktop.
Python https server
import http.server
import ssl
import os
def start_server(host: str = '127.0.0.1', port: int = 4443):
httpd = http.server.HTTPServer((host, port), http.server.SimpleHTTPRequestHandler)
server = http.server.HTTPServer.get_request(httpd)[0].getsockname()
print(f'Server is running at https://{server[0]}:{server[1]}')
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()
def generate_selfsigned_cert():
if not os.path.exists('server.pem'):
try:
cert = 'openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out cert.pem -keyout server.pem -subj "/CN=www.mydom.com/O=My Company Name LTD./C=US"'
os.system(cert)
print('<<<<Certificate Generated>>>>>>')
except:
print('Error while generating certificate')
def main():
try:
generate_selfsigned_cert()
start_server()
except KeyboardInterrupt:
print("\nFile Server Stopped!")
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment