Client/server pair, not working
This commit is contained in:
53
certclient.py
Executable file
53
certclient.py
Executable 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()
|
||||||
@@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user