4

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

我意识到这没什么好继续的,但是如果有人可以解释对该示例的基本修改以让服务器对客户端进行身份验证而不是相反,那就太棒了。或者,一个示例的链接甚至只是一些要研究的套接字方法将非常有帮助。如果需要更多信息,请告诉我。我并不是要含糊其辞,并保证我整个上午都在寻找自己的信息:)。

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

4

2 回答 2

3

您将使用SSLSocket.getpeercert来获取证书。客户端在包装套接字时需要指定密钥和证书,就像服务器端一样。在服务器端,您还需要传递 ca_certs="path_to_ca_cert_file" 并且可能还想指定 cert_reqs=CERT_REQUIRED (请参阅 args for ssl.wrap_socket

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

于 2012-12-31T20:23:41.120 回答
0

不太确定您的问题指的是什么,但是您可以在 Python 中看到SSL,在 Python中查看 SSL 的其他资源验证 SSL获取 SSL 证书信息,并且您可能找到了其他好的链接。

于 2012-12-31T18:50:56.403 回答