我有一個使用websockets的工作聊天應用程序。我想更進一步,並在我的連接上啓用加密,但是當我使用https連接http服務器時,我的連接開始失敗。WebSocket服務器不支持SSL
我已經生成了我在我所有網站上使用的自簽名證書(在同一頂級域名下,這意味着它是通配證書)。我可以確認它是一個有效的證書,所以問題不應該在那裏。
這是什麼工作(未加密)
var webSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function() {});
server.listen(webSocketsServerPort, function() {
log("system", "Server is listening on port " + webSocketsServerPort);
});
var wsServer = new webSocketServer({
httpServer: server
});
使用這個我現在可以連接到ws://my.domain:port
。
這是什麼呢不工作
var webSocketServer = require('websocket').server;
var http = require('https');
var fs = require('fs');
var server = http.createServer({
key: fs.readFileSync("path/to/host.key"),
cert: fs.readFileSync("path/to/host.pem")
});
server.listen(webSocketsServerPort, function() {
log("system", "Server is listening on port " + webSocketsServerPort);
});
var wsServer = new webSocketServer({
httpServer: server
});
有了這個代碼在服務器啓動,以及,我看到日誌消息「服務器正在監聽。」但是當我嘗試在wss://my.domain:port
連接連接無法建立。
我在瀏覽器中爲證書添加了一個異常,因爲我的客戶端頁面和websocket服務器地址在同一個tld和子域下。
可能是什麼問題?
防火牆問題? –