• error:03000086:digital envelope routines::initialization error问题解决


    目录

    问题描述:error:03000086:digital envelope routines::initialization error

    问题原因:nodejs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。

    解决方案:

    方法一:Vscode或者cmd命令行输入命令

    方法二: 


    vue前端项目命令框输入npm run serve或者npm run dev

    报error:03000086:digital envelope routines::initialization error错误

    Error: error:0308010C:digital envelope routines::unsupported   
        at new Hash (node:internal/crypto/hash:69:19)
        at Object.createHash (node:crypto:133:10)
        at module.exports (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\util\createHash.js:135:53)
        at NormalModule._initBuildHash (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:417:16)
        at handleParseError (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:471:10)
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:503:5
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\webpack\lib\NormalModule.js:358:12
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:373:3
        at iterateNormalLoaders (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
        at Array. (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
        at Storage.finished (D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9   
        at D:\Code\VueProject\iss-edu-platform-online-front-all\node_modules\graceful-fs\graceful-fs.js:123:16
        at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
      opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
      library: 'digital envelope routines',
      reason: 'unsupported',
      code: 'ERR_OSSL_EVP_UNSUPPORTED'
    }

    Node.js v18.17.1

     

    问题描述:

    由于重装了系统,node.js全部重新安装,目前node.js 版本为 18.7.1,部分老项目在使用时报错:

    1.   opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
    2.   library: 'digital envelope routines',
    3.   reason: 'unsupported',
    4.   code: 'ERR_OSSL_EVP_UNSUPPORTED'

    问题原因:

    NodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。老项目是nodeJS16版本。

    解决方案:

    由于版本差异,为了适配老项目最好的方案就是退回旧版本。但技术总在迭代更新,为此我选择了停留在当前版本,简单直接的解决问题。

    方法一:Vscode或者cmd命令行输入命令

    $env:NODE_OPTIONS="--openssl-legacy-provider"

     使电脑上的 node 版本能适应项目的版本。

    然后再执行 npm run serve ,则能成功运行项目。

     

    方法二: 

    找到package.json 文件,加上:set NODE_OPTIONS=--openssl-legacy-provider && 如下:

    "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open",

     就我个人而言,方法一是比较好,推荐大家使用方法一。省的每个项目都要配置一下。

  • 相关阅读:
    【Hack The Box】linux练习-- Irked
    事件驱动的微服务、CQRS、SAGA、Axon、Spring Boot
    三、nacos注册中心实现原理分析
    springboot和spring使用@Async注意事项
    2024年度西安市科技企业孵化载体申报条件材料、时间程序
    k8spod就绪检查失败
    Angular main 中的enableProdMode
    集线器和交换机的区别
    如何实现通过Leaflet加载dwg格式的CAD图
    S-3A5001 DPDK性能优化
  • 原文地址:https://blog.csdn.net/weixin_46474921/article/details/132969114