我需要在安全websocket中使用websocket转换应用程序。 (在Windows下) 我使用nodeJs作为websocket服务器,并使用一个简单的html页面连接到它。
我在google和此处进行搜索,发现了这种方法:
为服务器创建证书和密钥。我遵循了本教程:
在创建.key和.pem之后,我已经修改了我的nodejs websocket服务器以引入证书:
const httpsOptions = {
key: fs.readFileSync('./api/security/cert.key'),
cert: fs.readFileSync('./api/security/cert.pem')
}
this._http = require('http');
this._server = this._http.createServer(httpsOptions , function(req, res) { this.closeCurrentConnections(req,res)}.bind(this));
var serverConfig = {
server: this._server,
autoAcceptConnections: false
}
this._wsServer = new WebSocketServer(serverConfig);
启动nodejs时Websocket服务器似乎出现了
现在,在客户端页面中,我有以下代码:
var websocket_server = "ws://localhost:8128";
var echo_service = new WebSocket(websocket_server,"echo-protocol");
[...]
我用以下代码通过HTTPS而不是简单的HTTP调用了此页面,对此进行了更改:
var websocket_server = "wss://localhost:8128";
var echo_service = new WebSocket(websocket_server,"echo-protocol");
[...]
我在客户端页面上遇到错误:
testing_page.html:283 WebSocket connection to 'wss://localhost:8128/' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
我认为是由于缺少证书。 我尝试在chrome上导入我以前的创建证书,但是由于chrome正在使用.crt和/或其他格式,因此无法导入。我尝试强制使用.pem,但它不起作用。
我缺少什么?