Spyne、TLS 和服务器到客户端请求
Posted
技术标签:
【中文标题】Spyne、TLS 和服务器到客户端请求【英文标题】:Spyne, TLS and server-to-client requests 【发布时间】:2013-10-24 23:52:33 【问题描述】:Spyne 是否通过使用 ZMQ 底层传输支持 TLS 安全性和服务器到客户端请求(通信对称)?
Spyne 的 API 参考 (http://pythonhosted.org/spyne/reference/index.html),如果是 ZeroMQ 服务器,它会说:
class spyne.server.zeromq.ZeroMQServer(app, app_url, wsdl_url=None)[source]
transport = 'http://rfc.zeromq.org/'
... 它链接到 ZeroMQ 组织的 RFC。我不知道这是否涉及 Spyne 支持所有传输协议(包括 TLS),因为 ZeroMQ 支持它们。
【问题讨论】:
我发现 ZeroMQServer 只实现 Zero.REP 通信模式,因此,我不希望根据 API 既不能执行 TLS 也不能执行服务器到客户端的响应ZMQ 项目的文档。 【参考方案1】:这里是 Spyne 维护者。
Spyne 不支持通信对称性。您必须实施一种新的传输方式(混合传输方式),以应对使用单一连接双向传输多条消息的挑战。但这当然是可行的,我想不出 Spyne 的设计中有什么会减慢你的速度。
到 ZeroMQ RFC 的链接类似于链接到 http://schemas.xmlsoap.org/soap/http/ 的 Http 传输 - 即只是一种明确的方式来表示我们正在谈论的 ZeroMQ。
ZeroMQ 传输是一个实验,旨在了解 ZeroMQ 在 RPC 设置中的表现。我不喜欢我所看到的,所以我继续前进。
正如您所指出的,唯一受支持的方案是 REQ/REP,如果 REQ/REP 套接字可以通过切换 URL 来切换到 TLS,那么它将起作用。否则,好吧,你就靠自己了。
顺便说一句,最新的文档在http://spyne.io/docs
【讨论】:
关于 Spyne 的对称性,服务器是否可以使用该连接调用已连接客户端的远程过程,而不是建立一个受 NAT/防火墙问题影响的新连接? 查看我的编辑。你应该一次问一个问题!以上是关于Spyne、TLS 和服务器到客户端请求的主要内容,如果未能解决你的问题,请参考以下文章
如何使用客户端上的“requests”模块和服务器上的“flask-restful”验证 https 请求的自签名证书(TLS1.2)