当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将pyOpenSSLverify_cb的ssl证书中的cn与生成的套接字相关联》经验,为你挑选了1个好方法。

我对pyOpenSSL有点新鲜.我试图弄清楚如何将生成的套接字关联到ssl证书.verify_cb被调用,这使我可以访问证书和conn但是如何在发生这种情况时将这些事情联系起来:

cli,addr = self.server.accept()



1> Jean-Paul Ca..:

握手完成后,您可以获得客户端证书.虽然验证回调(verify_cb)中也提供了客户端证书,但除了验证该回调中的证书之外,没有任何理由尝试做任何事情.在握手完全成功后,最好设置特定于应用程序的映射.因此,请考虑使用accept方法返回的OpenSSL.SSL.Connection实例来获取证书(并从那里获取commonName)并将其与此时的连接对象相关联.例如,

client, clientAddress = self.server.accept()
client.do_handshake()
commonNamesToConnections[client.get_peer_certificate().commonName] = client

您可能需要检查映射以确保不覆盖任何现有连接(可能使用连接列表而不是仅将每个公用名称映射到一个).当然,您需要在连接丢失时删除条目.

`do_handshake'调用强制实际发生握手.如果没有这个,当首次通过连接传输应用程序数据时,将发生握手.这很好,但它会使这个映射设置稍微复杂一些.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有