Node.js与OpenSSL 3.0不兼容问题的解决过程

 更新时间:2026年05月27日 15:56:27   作者:小铭好菜  
这篇文章主要介绍了Node.js与OpenSSL 3.0不兼容问题的解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在某些情况下,使用 Node.js 17 或更高版本时,可能会遇到与 crypto 库有关的错误。

这主要是因为 Node.js 17 引入了对 OpenSSL 3.0 的支持,该版本对于一些 API 进行了重大更改,这可能导致与某些 Node.js 库或依赖项的不兼容。

错误描述

以下是错误的示例:

Error: error:0308010C:digital envelope routines::unsupported
...
code: 'ERR_OSSL_EVP_UNSUPPORTED'

解决方案

为了解决与 OpenSSL 3.0 的不兼容问题,Node.js 提供了 --openssl-legacy-provider 选项,但这并不总是有效。

一种有效的解决方法是退回到 Node.js 16,这是一个长期支持(LTS)版本,并且不包括 OpenSSL 3.0 的支持。

使用NVM切换Node.js版本

NVM (Node Version Manager) 是一个非常方便的工具,允许在同一台机器上安装、管理和切换多个 Node.js 版本。

安装NVM

  • 访问NVM GitHub 仓库 获取安装指南。
  • 对于大多数用户,只需在终端运行以下命令即可:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

使用NVM切换Node.js版本

  • 安装 Node.js 16
nvm install 16
  • 切换至 Node.js 16 版本
nvm use 16

这样,就切换到了 Node.js 16,并且应该不会再遇到与 OpenSSL 3.0 不兼容的问题。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • node Buffer缓存区常见操作示例

    node Buffer缓存区常见操作示例

    这篇文章主要介绍了node Buffer缓存区常见操作,涉及node.js操作Buffer缓存的创建、写入、读取、转换等相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • 解决yarn安装依赖包报错error An unexpected error occurred: https://registry.npm.taobao.orgnpm/element-ui: get问题

    解决yarn安装依赖包报错error An unexpected error o

    文章主要讲述了在使用yarn安装依赖包时遇到的错误,并提供了解决方案,建议将请求地址设置为淘宝源,对node-sass镜像源进行设置,最后重新下载依赖包
    2026-04-04
  • node版本与node-sass版本不兼容时的问题及解决

    node版本与node-sass版本不兼容时的问题及解决

    这篇文章主要介绍了node版本与node-sass版本不兼容时的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 安装nodejs和yarn及配置淘宝源过程记录

    安装nodejs和yarn及配置淘宝源过程记录

    这篇文章主要介绍了安装nodejs和yarn及配置淘宝源过程记录的相关资料,需要的朋友可以参考下
    2021-10-10
  • node.JS路径解析之PATH模块使用方法详解

    node.JS路径解析之PATH模块使用方法详解

    path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块。本文将详细介绍path模块
    2020-02-02
  • 使用socket.io制做简易WEB聊天室

    使用socket.io制做简易WEB聊天室

    这篇文章主要为大家详细介绍了使用socket.io制做简易WEB聊天室,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • nodejs 的 session 简单使用

    nodejs 的 session 简单使用

    session 不用多介绍,使一个http可以对应一个终端用户,需要的朋友可以参考下。
    2016-06-06
  • Nodejs提取网址参数解决“querystring”已弃用问题

    Nodejs提取网址参数解决“querystring”已弃用问题

    无论是前端还是后端,经常出现的应用场景是URL中参数的处理,下面这篇文章主要给大家介绍了关于Nodejs提取网址参数解决“querystring”已弃用问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • node进程管理工具PM2用法详解

    node进程管理工具PM2用法详解

    本文详细讲解了node进程管理工具PM2的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Node.js控制器Controller使用教程

    Node.js控制器Controller使用教程

    这篇文章主要介绍了Node.js控制器Controller使用教程,一个控制器的目的是接收应用程序的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有一个以上的路由,不同的路由可以执行不同的动作
    2023-04-04

最新评论