響應我有一個龍捲風的httpserver初始化像這樣:龍捲風WebSocketHandler將不會對SSL請求
ssl_options = {
"certfile": "mycert.crt",
"keyfile": "mykey.key"
}
server = tornado.httpserver.HTTPServer(application, xheaders=True,
ssl_options=ssl_options)
它有一個open()
方法WebSocketHandler。
當我嘗試打開從Chrome 30控制檯通過JavaScript安全WebSocket連接,像
var sock = new WebSocket("wss://localhost:9001/mywebsocket");
連接沒有成功打開,沒有日誌輸出,WebSocketHandler的open()
不叫。
如何打開並維護與Tornado中的Javascript客戶端的安全(SSL)WebSocket連接?
試圖在龍捲風日誌以下錯誤輸出不安全的連接,像
var sock = new WebSocket("ws://localhost:9001/mywebsocket");
結果:
2013-10-08 13:59:55,305 tornado.general 820 : SSL Error on 8 ('192.168.149.27', 62851): [Errno 1] _ssl.c:490: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request
此外,在這種情況下,連接未成功和open()
ISN打開不叫。
附加信息:錯誤消息中的IP(以上示例中的62851)之後的數字隨着每個請求的安全或其他情況而增加。我不知道這個號碼是什麼,但它確實表明請求至少到達服務器。
此外,從構造函數中刪除ssl_options
,並向服務器發送不安全請求(ws://
)可修復此問題。
正在使用的證書是自簽名的。要通過curl與服務器的HTTP端點進行通信,我必須使用--insecure
標誌。