Twisted certificate of passing into ssl handler
I am designing an ssl server where I use twisted for it with ssl and it requires client certificate authentication when I check the client ssl certificate it returns True, but I want to pass commanname and emailaddress in the client certificate so that I can get the settings for that particular client in the handler class, so can you help me?
from OpenSSL import SSL
from twisted.internet import ssl, reactor
from twisted.internet.protocol import Factory, Protocol
from twisted.web import server, resource, static, twcgi
class Handler(Protocol):
def dataReceived(self, data):
self.transport.write(data)
def connectionMade(self):
self.transport.write('hello world')
def verifyCallback(connection, x509, errnum, errdepth, ok):
global client_username
if not ok:
return False
else:
return True
if __name__ == '__main__':
#setting up ssl json server
factory = Factory()
factory.protocol = Handler
myContextFactory = ssl.DefaultOpenSSLContextFactory('server.key', 'server.crt',SSL.TLSv1_METHOD)
ctx = myContextFactory.getContext()
ctx.load_verify_locations("ca.crt")
ctx.set_verify(SSL.VERIFY_PEER | SSL.VERIFY_FAIL_IF_NO_PEER_CERT,verifyCallback)
reactor.listenSSL(8080, factory,myContextFactory)
reactor.run()
+1
source to share