[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-錯誤訊息-error0308010cdigital-envelope-routinesunsupported":3},{"id":4,"slug":5,"title":6,"description":7,"content":8,"date":9,"image":10,"imageAlt":6,"author":11,"categories":14,"path":17,"minRead":18},3456,"錯誤訊息-error0308010cdigital-envelope-routinesunsupported","錯誤訊息 error:0308010C:digital envelope routines::unsupported","錯誤訊息 error:0308010C:digital envelope routines::unsuppor […]","\u003Ch1>錯誤訊息 error:0308010C:digital envelope routines::unsupported\u003C\u002Fh1>\n\u003Cp>在測試一個別人的專案時遇到此錯誤訊息\u003Cem>error:0308010C:digital envelope routines::unsupported\u003C\u002Fem> 找了一下解決方式後有一些新發現。\u003C\u002Fp>\n\u003Cp>會有這錯誤原因可能出自於node.js v17後調整了而OpenSSL3，OpenSSL3對於密鑰和演算法有了更近一步的限制，因此造成某些套件會出現這問題。\u003Cbr \u002F>\n也因此這個錯誤訊息最容易查到的解決方式是將版本。\u003C\u002Fp>\n\u003Ch2>解法1\u003C\u002Fh2>\n\u003Cp>就是降低版本，降低到node.js v17之前，多半就可以解決這個問題。我自己是降低到v14就順利執行\u003C\u002Fp>\n\u003Cp>但也有另個解決方式。\u003C\u002Fp>\n\u003Ch2>解法2\u003C\u002Fh2>\n\u003Cp>執行前強制使用舊版本的OpenSSL方法，當然這個做法也有缺點，能用OpenSSL3就盡量用，也是比較安全。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>export NODE_OPTIONS=--openssl-legacy-provider\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>最終採用解法3\u003C\u002Fh2>\n\u003Cp>當然最後我使用了兩全其美的做法，就是採用解法1，降低版本，然後放到docker裡面執行，完美。\u003C\u002Fp>\n\u003Cp>要選擇怎麼處理就看遇到的狀況囉。\u003C\u002Fp>\n","2023-03-13T20:00:18","\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2023%2F01%2F640px-Node.js_logo.svg.png",{"name":12,"link":13},"Chih Fan","http:\u002F\u002Fpost.billxu.net",[15],{"name":16,"slug":16},"node","\u002Fblog\u002F錯誤訊息-error0308010cdigital-envelope-routinesunsupported",1]