node.js - NodeJs - 安全的 Web Socket 和客户端连接
问题描述
我需要在安全 websocket 中使用 websocket 转换应用程序。(在 windows 下)我使用 nodeJs 作为 websocket 服务器和一个简单的 html 页面来连接它。
在谷歌和这里搜索,我发现了这种方法:
为服务器创建证书和密钥。我遵循了本教程:
创建 .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 但它不起作用。
我缺少什么?
解决方案
推荐阅读
- python - Python读取目录中的大量文件并进行处理,快速方式?
- laravel - 雄辩的“超级渴望”嵌套查询可能吗?
- java - 我正在尝试制作一个 Android 应用程序,但是当我按下按钮时它崩溃了,而不是转到下一个屏幕
- c# - ApplicationInsights - CustomProperties 不会在请求之间更新
- scala - Scala:如何按行号拆分数据框?
- dart - Flutter单选按钮自定义选择单个项目
- wordpress - 如何在带有 wordpress 后端的本地反应中实现通知系统
- java - 将图形添加到 JPanel
- azure - Azure自行重新启动我的Web应用程序时如何获取通知
- c# - 如何同步两个 PaintEventArgs?