【发布时间】:2020-06-12 08:00:41
【问题描述】:
我有一个基本的 nodeJS 应用程序,它通过安全的 websocket(ws 库)连接连接到服务器。连接服务器时不断抛出UNABLE_TO_VERIFY_LEAF_SIGNATURE 错误。我无法控制服务器,它是外部的。端点以wss:// 开头(不确定是否有区别)
我尝试了很多东西,但似乎没有一个有效:
-
rejectUnauthorized: false有效,但连接在 x 次后中断,1006 -
export NODE_EXTRA_CA_CERTS=[your CA certificate file path]不起作用 -
npm config set cafile [your CA certificate file path]不起作用 - npm 模块 syswide-cas 或 node-ssl-root-cas 不起作用
- 在套接字选项中添加
ca: [fs.readFileSync("ca.ca-bundle", {encoding: 'utf-8'})]不起作用
但是,当我在浏览器中导航到端点时,连接是有效且安全的。我尝试从浏览器中提取证书并包含到 nodeJS 中,没有结果,同样的错误。当我使用网站https://whatsmychaincert.com/ 获取证书时也是如此......
基本代码:
this.websocket = new WebSocket(this.apiUrl, this.applicationId, {
rejectUnauthorized: true,
});
...
this.websocket.on('open', () => {
console.log('Connection successfully opened');
});
this.websocket.on('error', error => {
console.log(error);
});
无论我做什么,似乎无论包含的证书 NodeJS 一直向我抛出 UNABLE_TO_VERIFY_LEAF_SIGNATURE 错误。
有人知道发生了什么吗?
【问题讨论】:
标签: javascript node.js typescript ssl websocket