【问题标题】:How can I enforce mutual authentication using Python's socketserver.TCPServer?如何使用 Python 的 socketserver.TCPServer 强制相互身份验证?
【发布时间】:2014-01-10 18:37:21
【问题描述】:

我想向互联网公开一个用 Python 编写的简单 TCP 服务器。要对客户端进行身份验证,我想同时依赖客户端和服务器证书。 socketserver.TCPServer 是否默认支持这种模式?如果没有,您能否建议如何扩展服务器以实现相互身份验证?

【问题讨论】:

    标签: python ssl mutual-authentication


    【解决方案1】:

    默认库不处理安全套接字 (SSL/TLS)。假设您无论如何都想使用该特定库,here's another discussion that shows a way to do it using the OpenSSL libraries

    如果您想编写服务器应用程序,您可能需要使用 Twisted,这是一个用 Python 编写网络应用程序的面向事件的框架。这是how to enable SSL for a TCP server上的相关文档。

    【讨论】:

    • 感谢您的指点。在TCPServer 上启用 SSL 之前,我已经看到了 SSL wrap 方法。但这不会启用相互身份验证,只是服务器身份验证。您是否碰巧特别了解相互身份验证?
    • 在 wrap_socket 调用中有一个 cert_reqs 参数,用于控制证书是可选的还是来自另一端的必需:docs.python.org/2/library/ssl.html#ssl.wrap_socket
    • 这正是我想要的。谢谢!
    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    相关资源
    最近更新 更多