4

我正在尝试使用 ssl 在客户端和我开发的服务器之间建立连接。基于此:http ://bobthegnome.blogspot.fr/2007/08/making-ssl-connection-in-python.html 我创建了一个简单的连接并且它可以工作。但我想通过添加客户端身份验证来改进它。所以我发现有些人使用 socket.warp_socket 。

这是一个例子:

bindsocket = socket.socket()
bindsocket.bind(('127.0.0.1', 9998))
bindsocket.listen(5)

while True:
    newsocket, fromaddr = bindsocket.accept()
    connstream = ssl.wrap_socket(newsocket,
                            server_side=True,
                            certfile="srv.crt",
                            keyfile="srv.key",
                            ssl_version=ssl.PROTOCOL_TLSv1)
    deal_with_client(connstream)    

这两者有什么区别?女巫一号是最好的(就我而言)?

谢谢

4

1 回答 1

2

没有区别。

socket.ssl()是一个不推荐使用的方法,它在下面调用socket.wrap_socket(),只是检查 python 是否已使用 SSL 支持进行编译(import ssl无论如何都会为你做)。

def ssl(sock, keyfile=None, certfile=None):
    # we do an internal import here because the ssl
    # module imports the socket module
    import ssl as _realssl
    warnings.warn("socket.ssl() is deprecated.  Use ssl.wrap_socket() instead.",
                  DeprecationWarning, stacklevel=2)
    return _realssl.sslwrap_simple(sock, keyfile, certfile)
于 2013-01-23T03:11:51.923 回答