我想提供一个由于敏感数据而必须安全加密的实时流。
我已经成功地使用gevent和gunicorn作为直接前端获得了正常的WebSockets流,但现在我需要确保它的安全性,并且正在寻找以下其中之一:
速度在这里并不是特别重要,因为连接的数量会很低。但是,数据的完整性很重要。
发布于 2012-12-22 09:20:55
假设您的应用程序在非SSL上正常运行,请将listen call从:
app.listen(args.listen_port, args.listen_interface) 至:
app.listen(args.listen_port, args.listen_interface, ssl_options={
"certfile": os.path.join(lib_dir, "mydomain.crt"),
"keyfile": os.path.join(lib_dir, "mydomain.key"),
})其中"mydomain.crt“和"mydomain.key”是您常用的SSL证书文件,lib_dir是它们所在的目录。
不要忘记将客户端更改为使用"wss:“
另请注意,如果指定ssl_options,则仍将使用在侦听呼叫中指定的端口。即它不会回复到在端口443上侦听。
发布于 2011-05-15 02:43:18
您可以查看websockify项目。Websockify是一个代理,它允许支持WebSockets的浏览器与原始二进制TCP服务器通信。它通过对进出浏览器的所有流量进行base64编码来实现这一点。然而,这个项目是模块化的,websocket.py文件是一个通用的WebSocket服务器,它被设计为可扩展的(有几个包含的测试展示了这是如何工作的)。如果您的项目不需要base64编码,那么禁用它将是相当容易的。
websockify还包括一个用于与Websockify交互的Javascript库'websock.js‘。如果浏览器没有原生WebSocket支持,它将透明地回退到使用web-socket-js (基于闪存)。
Websockify支持安全(TLS/wss)连接,还能够在同一端口内联应答Flash安全策略请求。
免责声明:我做了websockify。
发布于 2011-05-14 07:38:03
看看谷歌支持的pywebsocket项目的standalone websockets server。
请注意,该Python模块使用CGIHTTPServer,因此需要对其进行调整以确保其安全性。我在几个月前参与的一个项目中也有类似的需求,所以我创建了standalone.py模块,并删除了与CGI的依赖,但我没有测试过太多的安全连接。
也许您可以导入OpenSSL.SSL并设置一个WebSocketServer,就像在我的脚本中一样。它应该使用正确配置了use_tls、private_key和certificate的WebSocketRequestHandler,以便实现传输层安全。
阅读源代码。我认为你可以扩展它来满足你的需求。
https://stackoverflow.com/questions/5994549
复制相似问题