簡體   English   中英

stompit 是 nodejs 模塊無法連接並出現錯誤“”無法驗證第一個證書”

[英]stompit is nodejs module failed to connect with error “”Unable to verify the first certificate"

我正在使用 stompit 模塊連接到 AMQ。 如果我將 ssl 設置為 true,那么它會失敗並出現錯誤“無法驗證第一個證書”。 如果我將rejectUnauthorized 設置為false,它會起作用,但代碼不會從它剛剛連接的AMQ 讀取任何消息。

我嘗試通過設置以下屬性來使用證書,但得到相同的錯誤。

ssl: true,
    key:fs.readFileSync('path'),
    cert:fs.readFileSync('path'),
    ca: [fs.readFileSync('path')],

如果您與 AMQ 的 TLS (SSL) 連接是通過反向代理(例如 Traefik),請確保在選項中傳遞servername屬性。 這可確保反向代理根據您嘗試訪問的服務器名稱提供正確的證書。

從 Stompi 的連接函數的代碼清單中,我們可以看到使用了 NodeJS TLS 模塊:

if ('ssl' in options) {
  if (typeof options.ssl === 'boolean') {
    if (options.ssl === true) {
      transportConnect = tls.connect;
    }
  }

您傳遞給 Stompi 的連接 function 的選項 object 將傳遞給 tls.connect。 Node 的tls.connect文檔提到使用 servername 來確保啟用 SNI:

與 https API 不同,tls.connect() 默認不啟用 SNI(服務器名稱指示)擴展,這可能會導致某些服務器返回錯誤的證書或完全拒絕連接。 要啟用 SNI,請設置 servername 選項以及 host。

暫無
暫無

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

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