2012-10-26 76 views
0

我有一个PSGI/Plack应用程序托管在反向https代理之后。访客使用客户端证书进行身份验证。我使用websocket来传递数据(比如说,“tail -f”的输出是异步的)。当直接访问应用程序时,应用程序工作正常,但是当通过反向https代理访问时,应用程序没有问题。 ?的WebSockets通过具有客户端证书认证的安全http服务器的Websockets

回答

3

有2个选项:

  1. 有反向代理终止该TLS,做客户端证书基于身份验证和转发未加密流量的网页套接字服务器后面

  2. 有反向代理将TLS保持原样到WebSocket服务器

随着2.,您将需要一个WebSocket服务器,实现TLS和基于客户端证书的身份验证。

这是基于高速公路启用TLS-的WebSocket服务器示例(Python /双绞线为主):

您可以添加客户端证书身份验证此以下的例子:

声明:我是Autobahn的作者,为Tavendo工作。

+0

谢谢。选项2:我受限于使用Perl websocket服务器(除了技术以外的原因),据我所知,没有支持SSL的服务器。我必须检查选项1,因为这不需要具有SSL支持的WS服务器。如果我有问题,会在这里报告。再次感谢你 - 这些文档为他们的目的写得非常好。 –

+0

@oberstet,嗨,我正在尝试使用websocket python客户端对Tornado的websocket实现,实际上,我正在对django应用程序进行身份验证,在那里我使用会话ID跟踪用户。问题是:我无法添加头文件(将会话ID传递给Tornado websocket服务器,然后依次检查会话存储库)到已存在的websocket python客户端实现。可以高速公路做到这一点,给我一个例子将不胜感激。另外,如果高速公路可以以某种方式缓解这一过程,请带我前往。谢谢! – securecurve

+0

@oberstet,我在on_open期间也需要这样做。 – securecurve

相关问题