无论如何,NodeJS 都会抛出 `UNABLE_TO_VERIFY_LEAF_SIGNATURE`
Posted
技术标签:
【中文标题】无论如何,NodeJS 都会抛出 `UNABLE_TO_VERIFY_LEAF_SIGNATURE`【英文标题】:NodeJS keep throwing `UNABLE_TO_VERIFY_LEAF_SIGNATURE` no matter what 【发布时间】: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
错误。
有人知道发生了什么吗?
【问题讨论】:
【参考方案1】:经过几天和几天的尝试解决这个问题,我终于设法解决了这个问题!
我一直在使用错误的证书链。我要连接的端点有一个 wss://
前缀。但是我从带有 https://
前缀的 url 获取证书。显然这有一个不同的证书链。
【讨论】:
以上是关于无论如何,NodeJS 都会抛出 `UNABLE_TO_VERIFY_LEAF_SIGNATURE`的主要内容,如果未能解决你的问题,请参考以下文章
每次“Camera camera = Camera.open();”时,Android都会抛出错误叫做