2016-02-25 440 views
6

我是新來的後端開發。我非常喜歡在節點中編寫代碼。但是,我似乎無法掌握的東西很少。我一直得到以下錯誤:Node.JS Error- process.env.NODE_TLS_REJECT_UNAUTHORIZED。這是什麼意思?

Error: DEPTH_ZERO_SELF_SIGNED_CERT

我通過執行以下代碼固定它:

if ('development' == app.get('env')) { 
    console.log("Rejecting node tls"); 
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
} 

我明白我們設置的環境。但是,這在通俗的語言中意味着什麼?我不知道如何解釋給別人。有很多onof信息,如何解決它,但我無法找到什麼,這實際上是什麼的意思是

有人可以解釋一下嗎?

回答

9

節點正在抱怨,因爲它給出的TLS(SSL)證書是自簽名的(即它沒有父節點 - 深度爲0)。它期望找到由您的操作系統中安裝的另一個證書籤名的證書作爲受信任的根。

您的「修復」是通過允許ANY未經授權的證書禁止節點拒絕自簽名證書。

您的修補程序是不安全的,根本不應該完成,但通常在開發中完成(它不應該在生產中完成)。

正確的解決方案應該是將自簽名證書放入受信任的根存儲區或獲取由現有證書頒發機構簽名的正確證書(已由服務器信任)。

另外一點,您的日誌記錄應該閱讀爲「禁用節點拒絕無效/未授權證書」

+0

非常感謝您分享此內容。 –

+0

有用的解釋,謝謝! –