zl程序教程

您现在的位置是:首页 >  APP

当前栏目

Node.js error: ERR_OSSL_EVP_UNSUPPORTED

2023-03-31 10:38:39 时间

Node.js 17版本的更新日志

2021-10-19, Version 17.0.0 (Current), @BethGriggs

Notable Changes

...

OpenSSL 3.0

Node.js now includes OpenSSL 3.0, specifically quictls/openssl which provides QUIC support. With OpenSSL 3.0 FIPS support is again available using the new FIPS module. For details about how to build Node.js with FIPS support please see BUILDING.md.

While OpenSSL 3.0 APIs should be mostly compatible with those provided by OpenSSL 1.1.1, we do anticipate some ecosystem impact due to tightened restrictions on the allowed algorithms and key sizes.

If you hit an ERR_OSSL_EVP_UNSUPPORTED error in your application with Node.js 17, it’s likely that your application or a module you’re using is attempting to use an algorithm or key size which is no longer allowed by default with OpenSSL 3.0. A command-line option, --openssl-legacy-provider, has been added to revert to the legacy provider as a temporary workaround for these tightened restrictions.

For details about all the features in OpenSSL 3.0 please see the OpenSSL 3.0 release blog.

...

使用时遇到错误代码为ERR_OSSL_EVP_UNSUPPORTED的报错,需要修改package.json添加参数--openssl-legacy-provider该应用生效,或者配置环境变量所有应用生效。

修改package.json

  "scripts": {
    "start": "chmod +x ./env.sh && ./env.sh && cp env-config.js ./public/ && react-scripts --openssl-legacy-provider start",
    "build": "react-scripts --openssl-legacy-provider build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

Windows系统:添加变量名为NODE_OPTIONS变量值为--openssl-legacy-provider的环境变量

 Linux系统:直接运行以下命令设置环境变量

export NODE_OPTIONS=--openssl-legacy-provider