簡體   English   中英

無論如何,NodeJS 都會拋出 `UNABLE_TO_VERIFY_LEAF_SIGNATURE`

[英]NodeJS keep throwing `UNABLE_TO_VERIFY_LEAF_SIGNATURE` no matter what

我有一個基本的 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錯誤。

有人知道發生了什么嗎?

經過幾天和幾天的嘗試解決這個問題,我終於設法解決了這個問題!

我一直在使用錯誤的證書鏈。 我要連接的端點有一個wss://前綴。 但是我從 url 獲得了帶有https://前綴的證書。 顯然這有不同的證書鏈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM