У меня есть рабочее приложение чата, использующее websockets. Я хочу сделать еще один шаг и включить шифрование в своих подключениях, однако, когда я переключаю HTTP-сервер с https, один из которых запускает мои подключения.
Я создал самозаверяющий сертификат, который я использую на всех моих сайтах (под тем же TLD, что означает, что это подстановочный знак). Я могу подтвердить, что это действительный сертификат, поэтому проблемы не должно быть.
Это то, что работает (незашифрованное)
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
, соединение не может быть установлено.
Я добавил исключение в свой браузер для сертификата, потому что моя клиентская страница и адрес сервера веб-сервера находятся под одним и тем же доменом и поддоменом.
В чем может быть проблема?