我有一个使用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和子域下。
可能是什么问题?
+0
防火墙问题? –