I'm making a ssl server, but I'm not sure how I can verify the
clients. What do I actually need to place in _verify to actually
verify that the client cert is signed by me?
50 class SSLTCPServer(TC PServer):
51 keyFile = "sslcert/server.key"
52 certFile = "sslcert/server.crt"
53 def __init__(self, server_address, RequestHandlerC lass):
54 ctx = SSL.Context(SSL .SSLv23_METHOD)
55 ctx.use_private key_file(self.k eyFile)
56 ctx.use_certifi cate_file(self. certFile)
57 ctx.set_verify( SSL.VERIFY_PEER |
SSL.VERIFY_FAIL _IF_NO_PEER_CER T | SSL.VERIFY_CLIE NT_ONCE,
self._verify)
58 ctx.set_verify_ depth(10)
59 ctx.set_session _id('DFS')
60
61 self.server_add ress = server_address
62 self.RequestHan dlerClass = RequestHandlerC lass
63 self.socket = socket.socket(s elf.address_fam ily,
self.socket_typ e)
64 self.socket = SSL.Connection( ctx, self.socket)
65 self.socket.bin d(self.server_a ddress)
66 self.socket.lis ten(self.reques t_queue_size)
67
68 def _verify(self, conn, cert, errno, depth, retcode):
69 return not cert.has_expire d() and
cert.get_issuer ().organization Name == 'DFS'
clients. What do I actually need to place in _verify to actually
verify that the client cert is signed by me?
50 class SSLTCPServer(TC PServer):
51 keyFile = "sslcert/server.key"
52 certFile = "sslcert/server.crt"
53 def __init__(self, server_address, RequestHandlerC lass):
54 ctx = SSL.Context(SSL .SSLv23_METHOD)
55 ctx.use_private key_file(self.k eyFile)
56 ctx.use_certifi cate_file(self. certFile)
57 ctx.set_verify( SSL.VERIFY_PEER |
SSL.VERIFY_FAIL _IF_NO_PEER_CER T | SSL.VERIFY_CLIE NT_ONCE,
self._verify)
58 ctx.set_verify_ depth(10)
59 ctx.set_session _id('DFS')
60
61 self.server_add ress = server_address
62 self.RequestHan dlerClass = RequestHandlerC lass
63 self.socket = socket.socket(s elf.address_fam ily,
self.socket_typ e)
64 self.socket = SSL.Connection( ctx, self.socket)
65 self.socket.bin d(self.server_a ddress)
66 self.socket.lis ten(self.reques t_queue_size)
67
68 def _verify(self, conn, cert, errno, depth, retcode):
69 return not cert.has_expire d() and
cert.get_issuer ().organization Name == 'DFS'
Comment