Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
在解決問題之道上不斷前行
在測試一個別人的專案時遇到此錯誤訊息error:0308010C:digital envelope routines::unsupported 找了一下解決方式後有一些新發現。
會有這錯誤原因可能出自於node.js v17後調整了而OpenSSL3,OpenSSL3對於密鑰和演算法有了更近一步的限制,因此造成某些套件會出現這問題。
也因此這個錯誤訊息最容易查到的解決方式是將版本。
就是降低版本,降低到node.js v17之前,多半就可以解決這個問題。我自己是降低到v14就順利執行
但也有另個解決方式。
執行前強制使用舊版本的OpenSSL方法,當然這個做法也有缺點,能用OpenSSL3就盡量用,也是比較安全。
export NODE_OPTIONS=--openssl-legacy-provider
當然最後我使用了兩全其美的做法,就是採用解法1,降低版本,然後放到docker裡面執行,完美。
要選擇怎麼處理就看遇到的狀況囉。