我正在尝试在我开发的客户端和服务器之间使用ssl建立连接.
我创建了一个简单的连接,它工作.但我希望通过添加客户端身份验证来改进它.所以我发现有些人使用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)
这两者有什么区别?巫婆一个是最好的(在我的情况下)?
谢谢
最佳答案 没有区别.
socket.ssl()是一个不推荐使用的方法,它调用下面的socket.wrap_socket(),只是检查是否已经使用SSL支持编译python(在任何情况下导入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)