Python 如何将pyOpenSSL verify_cb的ssl证书中的cn与生成的套接字相关联

Python 如何将pyOpenSSL verify_cb的ssl证书中的cn与生成的套接字相关联,python,pyopenssl,Python,Pyopenssl,我对pyOpenSSL有点陌生。我正在尝试找出如何将生成的套接字与ssl证书关联。请验证调用了\u cb,这使我能够访问证书和conn,但发生这种情况时,我如何关联这些内容: cli,addr=self.server.accept()。虽然客户机证书也可以在verify回调(verify_cb)中使用,但除了在该回调中验证证书之外,实际上没有任何理由尝试执行任何操作。设置特定于应用程序的映射最好在握手完全成功后进行。因此,请考虑使用Access方法返回的OpenSSL.SSL.CONTURE实例

我对pyOpenSSL有点陌生。我正在尝试找出如何将生成的套接字与ssl证书关联。请验证调用了\u cb,这使我能够访问证书和conn,但发生这种情况时,我如何关联这些内容:


cli,addr=self.server.accept()。虽然客户机证书也可以在verify回调(verify_cb)中使用,但除了在该回调中验证证书之外,实际上没有任何理由尝试执行任何操作。设置特定于应用程序的映射最好在握手完全成功后进行。因此,请考虑使用Access方法返回的OpenSSL.SSL.CONTURE实例来获取证书(并从那里获得公共名称),并将其与该连接对象关联。比如说,

client, clientAddress = self.server.accept()
client.do_handshake()
commonNamesToConnections[client.get_peer_certificate().commonName] = client
您可能需要检查映射,以确保没有覆盖任何现有连接(可能使用连接列表,而不仅仅是将每个公用名称映射到一个)。当然,当连接丢失时,您需要删除条目


“do_handshake”调用强制握手实际发生。如果不这样做,握手将在应用程序数据首次通过连接传输时发生。这很好,但这会使设置此映射稍微复杂一些。

是否接受答案?:)