Client/server pair, not working

This commit is contained in:
Ian Gulliver
2016-04-03 12:50:30 -07:00
parent 3e16887e0f
commit 80e24b01cd
2 changed files with 62 additions and 2 deletions

53
certclient.py Executable file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/python3
import argparse
import requests
parser = argparse.ArgumentParser(description='certclient')
parser.add_argument(
'--ca-cert',
dest='ca_cert',
action='store',
required=True)
parser.add_argument(
'--client-cert',
dest='client_cert',
action='store',
required=True)
parser.add_argument(
'--client-key',
dest='client_key',
action='store',
required=True)
parser.add_argument(
'--server',
dest='server',
action='store',
required=True)
FLAGS = parser.parse_args()
class CertClient(object):
def __init__(self, server, ca_cert, client_cert, client_key):
self._session = requests.Session()
self._session.verify = ca_cert
self._session.cert = (client_cert, client_key)
self._server = server
def Request(self):
self._session.get(self._server)
def main():
client = CertClient(
FLAGS.server,
FLAGS.ca_cert,
FLAGS.client_cert,
FLAGS.client_key)
client.Request()
if __name__ == '__main__':
main()

View File

@@ -7,6 +7,11 @@ import ssl
parser = argparse.ArgumentParser(description='certserver') parser = argparse.ArgumentParser(description='certserver')
parser.add_argument(
'--ca-cert',
dest='ca_cert',
action='store',
required=True)
parser.add_argument( parser.add_argument(
'--listen-host', '--listen-host',
dest='listen_host', dest='listen_host',
@@ -37,12 +42,13 @@ class HTTPServer6(server.HTTPServer):
class CertServer(object): class CertServer(object):
def __init__(self, listen_host, listen_port, server_key, server_cert): def __init__(self, listen_host, listen_port, server_key, server_cert, ca_cert):
self._httpd = HTTPServer6((listen_host, listen_port), server.SimpleHTTPRequestHandler) self._httpd = HTTPServer6((listen_host, listen_port), server.SimpleHTTPRequestHandler)
self._httpd.socket = ssl.wrap_socket( self._httpd.socket = ssl.wrap_socket(
self._httpd.socket, self._httpd.socket,
keyfile=server_key, keyfile=server_key,
certfile=server_cert, certfile=server_cert,
ca_certs=ca_cert,
server_side=True, server_side=True,
cert_reqs=ssl.CERT_REQUIRED, cert_reqs=ssl.CERT_REQUIRED,
ssl_version=ssl.PROTOCOL_TLSv1_2, ssl_version=ssl.PROTOCOL_TLSv1_2,
@@ -57,7 +63,8 @@ def main():
FLAGS.listen_host, FLAGS.listen_host,
FLAGS.listen_port, FLAGS.listen_port,
FLAGS.server_key, FLAGS.server_key,
FLAGS.server_cert) FLAGS.server_cert,
FLAGS.ca_cert)
server.Serve() server.Serve()