gpt4 book ai didi

python - 扭曲地将证书传递给 ssl 处理程序

转载 作者:行者123 更新时间:2023-12-01 05:59:57 26 4
gpt4 key购买 nike

我正在设计一个ssl服务器,我将twisted与ssl一起使用,它需要客户端证书身份验证才能继续该程序,当我验证客户端的ssl证书时,它返回True,但我想传递commanname和客户端证书中的电子邮件地址,以便我可以在处理程序类中获取该特定客户端的设置,那么你能帮助我吗?

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()

最佳答案

Protocol.dataReceived 或其他协议(protocol)方法中调用 transport.getPeerCertificate(仅您收到一些数据之后)。

关于python - 扭曲地将证书传递给 ssl 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com