我在反向https代理后面托管了一个PSGI / Plack应用程序。访问者使用客户端证书进行身份验证。我使用websockets将数据(例如,“tail -f”的输出异步传递给浏览器。直接访问时应用程序工作正常,但是当通过反向https代理访问时不能。有没有办法使用客户端证书身份验证的WebSockets?
答案 0 :(得分:3)
有两个选项:
让反向代理终止TLS,执行基于客户端证书的身份验证并将未加密的流量转发到后面的WebSocket服务器
让反向代理将未更改的TLS转发到WebSocket服务器
使用2.,您将需要一个实现TLS和基于客户端证书的身份验证的WebSocket服务器。
这是一个基于TLS的WebSocket服务器示例,基于Autobahn(基于Python / Twisted):
您可以按照以下示例添加client-cert auth:
免责声明:我是高速公路的作者并为Tavendo工作。