Python SSL套接字客户端身份验证

2024-04-29 00:40:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中设置一个服务器和客户机,服务器使用带有证书的SSL对客户机进行身份验证。网上有很多SSL证书的例子,但是我所找到的所有东西都是由服务器向客户机提供证书并由客户机进行检查的。我需要服务器来确保客户端有权连接到服务器。我了解如何生成和发送证书,以及它们如何工作的基本知识。我会键入我的代码,但是没有SSL的客户机/服务器工作正常,我一直在为SSL引用this。该页底部的客户机/服务器示例总结了我对python中SSL证书的理解。

我意识到这并不是什么好做的事情,但是如果有人能够解释对这个示例的基本修改,让服务器对客户端进行身份验证,而不是相反的方式,那就太棒了。或者,链接到一个示例甚至只是一些要研究的socket方法将非常有帮助。如果需要更多信息,请告诉我。我不想含糊其辞,并承诺我花了一上午自己寻找信息:)。

编辑:我试图坚持基本的ssl库。又名“导入ssl”。


Tags: 代码服务器身份验证信息客户端ssl示例客户机
2条回答

不确定你的问题指的是什么,但是你可以看到SSL in Pythonother resource for SSL in PythonValidating SSLget SSL Certificate information并且你可能找到了其他好的链接。

您可以使用SSLSocket.getpeercert获取证书。客户端在像服务器端那样包装套接字时需要指定密钥和证书。在服务器端,您还需要传递ca_certs=“path_to_ca_cert_file”,可能还需要指定cert_reqs=cert_REQUIRED(请参阅)。用于ssl.wrap_socket的参数。

除此之外,听起来您可能希望执行基于证书的客户端身份验证/授权?这是一个简单的问题,使用getpeercert获取客户端证书,并访问证书中的字段以在正常身份验证路径中使用(即Common Name==User Id)

相关问题 更多 >