From 38f35d423f19538a4e714d42796f06afe48e3ac0 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Mon, 4 Apr 2016 22:44:13 -0700 Subject: [PATCH] Stop serving arbitrary files. Content type, post body. --- certclient.py | 5 ++++- certserver.py | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/certclient.py b/certclient.py index b4e391c..3490d43 100755 --- a/certclient.py +++ b/certclient.py @@ -34,10 +34,13 @@ class CertClient(object): self._session = requests.Session() self._session.verify = ca_cert self._session.cert = (client_cert, client_key) + self._session.headers.update({ + 'Content-Type': 'application/x-pem-file', + }) self._server = server def Request(self): - self._session.get(self._server) + self._session.post(self._server, data='foo') def main(): diff --git a/certserver.py b/certserver.py index 42a3c85..439282c 100755 --- a/certserver.py +++ b/certserver.py @@ -43,7 +43,16 @@ class HTTPServer6(server.HTTPServer): class CertServer(object): def __init__(self, listen_host, listen_port, server_key, server_cert, ca_cert): - self._httpd = HTTPServer6((listen_host, listen_port), server.SimpleHTTPRequestHandler) + + class RequestHandler(server.BaseHTTPRequestHandler): + def do_POST(self): + assert self.headers['Content-Type'] == 'application/x-pem-file' + size = int(self.headers['Content-Length']) + print(self.rfile.read(size)) + self.send_response(200) + self.end_headers() + + self._httpd = HTTPServer6((listen_host, listen_port), RequestHandler) self._httpd.socket = ssl.wrap_socket( self._httpd.socket, keyfile=server_key,