Initial prototype of proxy to allow plaintext gateway to HTTPS

This commit is contained in:
Bobbi Webber-Manners 2020-06-17 20:43:26 -04:00
parent 555700af69
commit 2ac8ce06cd
1 changed files with 37 additions and 0 deletions

37
dehttps-proxy.py Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/python3
#
# Very simple prototype of an HTTP server that can perform HTTPS
# requests on behalf of a plaintext client.
#
# Bobbi June 2020
#
# If this client is running on port 8000, then fetching:
# http://raspberrypi:8000/www.google.com
# Will fetch https://www.google.com
#
import http.server, socketserver
import requests, sys
PORT = 8000
class MyHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, req, client_addr, server):
http.server.SimpleHTTPRequestHandler.__init__(self, req, client_addr, server)
def do_GET(self):
url = 'https:/' + self.path
print('Getting {} ...'.format(url))
file = requests.get(url, allow_redirects=True)
self.send_response(200)
self.send_header("Content-type", "text/html")
self.send_header("Content-length", len(file.content))
self.end_headers()
self.wfile.write(file.content)
handler = MyHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), handler)
httpd.serve_forever()