使用SimpleWebSocketServer模块的Python Websocket安全服务器
使用SimpleWebSocketServer模块的Python Websocket安全服务器,python,websocket,Python,Websocket,我正在尝试用Python实现websocket安全服务器(基于模块) 在链接中,它表示模块支持TLS和SSL连接,但没有解释如何使用 我目前拥有的代码如下: from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket import ssl class SimpleResponder(WebSocket): def handleMessage(self): self.sendMessage(sel
我正在尝试用Python实现websocket安全服务器(基于模块)
在链接中,它表示模块支持TLS和SSL连接,但没有解释如何使用
我目前拥有的代码如下:
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
import ssl
class SimpleResponder(WebSocket):
def handleMessage(self):
self.sendMessage(self.data)
def handleConnected(self):
print self.address, 'connected'
def handleClose(self):
print self.address, 'closed'
server = SimpleWebSocketServer('', 8000, SimpleResponder)
try:
server.serveforever()
except KeyboardInterrupt:
pass
print "Server ended"
server.socket = ssl.wrap_socket (server.socket, certfile='path/to/localhost.pem', server_side=True)
我尝试以与HTTP服务器相同的方式实现SSL包装(如下所示):
但似乎不起作用(我得到下一个错误):
因此很明显,SimpleWebSocketServer
类的结构与SimpleHTTPServer
类不同。那么我如何实现一个安全的websocket服务器呢?来自: TLS/SSL示例 1) 生成具有密钥的证书
openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
2) 运行安全TSL/SSL服务器(在本例中,cert.pem文件位于
同一目录)
3) 通过提供websocket.html向浏览器提供证书
通过https。HTTPS服务器将在本地服务器中查找cert.pem
目录确保websocket.html也位于同一目录中,以便
服务器运行的位置
sudo python SimpleHTTPSServer.py
4) 打开web浏览器以执行以下操作:
5) 将ws://localhost:8000/更改为wss://localhost:8000 点击
连接
注意:如果您在连接时遇到问题,请确保
已将证书添加到浏览器中以防止异常
或任何要连接的主机:端口对
对
我发现这很容易使用。它可以与网络和网络引擎一起工作
python SimpleExampleServer.py --example chat --ssl 1 --cert ./cert.pem
sudo python SimpleHTTPSServer.py