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
版权归原作者 dev-tang 所有, 如有侵权,请联系我们删除。