Node.js error: ERR_OSSL_EVP_UNSUPPORTED

Changelog for Node.js 17 version :

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.

...

The error code encountered when usingERR_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 system: Run the following command directly to set environment variables

export NODE_OPTIONS=--openssl-legacy-provider

Guess you like

Origin blog.csdn.net/m0_75186659/article/details/128173689