彻底解决npm报错ERR_OSSL_EVP_UNSUPPORTED的终极指南
2023-02-23 00:23:01
如何解决 npm 错误 ERR_OSSL_EVP_UNSUPPORTED
作为一名 Node.js 开发者,您可能在使用 npm 时遇到过令人沮丧的 ERR_OSSL_EVP_UNSUPPORTED 错误。这可不是一个小问题,它会阻碍您的项目正常运行,影响您的工作效率。但不要惊慌,我们为您准备了终极指南,一步一步带您轻松解决此问题!
解决方案一:降级 Node.js 版本
最直接的方法是降级 Node.js 版本。按照以下步骤操作:
- 卸载当前版本的 Node.js:
npm uninstall -g node
- 安装旧版本的 Node.js:
npm install -g node@16
- 重新启动项目:
npm start
一切顺利的话,您的项目现在应该可以正常运行了。
解决方案二:更新 OpenSSL
另一种选择是更新 OpenSSL。步骤如下:
- 检查当前 OpenSSL 版本:
openssl version
- 如果是旧版本,则更新 OpenSSL:
brew update
brew upgrade openssl
- 重新启动项目:
npm start
解决方案三:配置 OpenSSL
您还可以通过配置 OpenSSL 来解决此问题。步骤如下:
- 打开 OpenSSL 配置文件:
sudo nano /etc/ssl/openssl.cnf
- 找到以下行:
[default]
CipherString = DEFAULT@SECLEVEL=1
- 将其替换为:
[default]
CipherString = DEFAULT
-
保存并关闭配置文件。
-
重新启动项目:
npm start
解决方案四:使用替代的加密库
如果您不想使用 OpenSSL,可以使用替代的加密库,例如 LibreSSL。步骤如下:
- 安装 LibreSSL:
brew install libressl
- 配置 Node.js 使用 LibreSSL:
export LDFLAGS="-L/opt/local/lib"
export CPPFLAGS="-I/opt/local/include"
npm config set openssl-default-library /opt/local/lib/libssl.1.1.dylib
- 重新启动项目:
npm start
常见问题解答
-
为什么会出现 ERR_OSSL_EVP_UNSUPPORTED 错误?
这通常是由于 OpenSSL 版本过旧或配置不当造成的。 -
降级 Node.js 版本后,需要重新安装 npm 包吗?
是的,建议重新安装所有 npm 包,以确保它们与较低版本的 Node.js 兼容。 -
更新 OpenSSL 后,需要重新启动哪些服务?
您需要重新启动使用 OpenSSL 的任何服务,例如 Web 服务器和数据库。 -
我尝试了所有解决方案,但仍然无法解决错误,怎么办?
您可以尝试在您的项目中添加process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0
来禁用 TLS 验证。 -
还有什么其他预防 ERR_OSSL_EVP_UNSUPPORTED 错误的方法?
确保保持 Node.js 和 OpenSSL 的最新版本,并定期检查是否有安全更新。