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 和服务器到客户端请求的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 请求中捕获客户端/服务器 TLS 版本

如何使用客户端上的“requests”模块和服务器上的“flask-restful”验证 https 请求的自签名证书(TLS1.2)

使用 Post 请求在 HTTP 客户端中启用 TLS

HTTPS协议详解:TLS/SSL握手过程

Linux 客户端从 Windows NPS 服务器请求证书

为啥大多数浏览器的预检请求中不包含 TLS 客户端证书?