Недавно перевел сервер на HTTPS, после перехода перестали работать WebSockets.
На клиенте был изменен протокол с ws на wss. На сервере (работает на NODE JS) также были подключены файлы сертификатов и выполнены необходимые настройки. В результате сейчас на клиентах вываливается ошибка:
WebSocket connection to 'wss://XXX.XX.XXX.XXX:4433/' failed: WebSocket opening handshake was canceled
Код серверной части на Node JS:
var https = require('https');
var WebSocketServer = require('ws'), fs = require('fs');
var port = 4433;
var app = null;
var processRequest = function( req, res ) {
res.writeHead(200);
res.end("All glory to WebSockets!\n");
};
app = https.createServer({
key: fs.readFileSync('/etc/nginx/ssl/server.key'),
cert: fs.readFileSync('/etc/nginx/ssl/bundle.crt'),
requestCert: true,
rejectUnauthorized: false,
}, processRequest ).listen(port);
var webSocketServer = new WebSocketServer.Server( { server: app } );
Как подружить Websockets с HTTPS?