doubleyong
管理员
管理员
  • 最后登录2024-06-25
  • 发帖数1175
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:497回复:0

[nodejs]npm 下载包,提示:CERT_HAS_EXPIRED错误

楼主#
更多 发布于:2024-05-24 10:15
问题:

在使用nodejs项目时,使用npm i 命令下载时,报错:
npm WARN old lockfile FetchError: request to https://registry.npm.taobao.org/on-headers failed, reason: certificate has expired
npm WARN old lockfile   code: 'CERT_HAS_EXPIRED',
npm WARN old lockfile   errno: 'CERT_HAS_EXPIRED',
npm WARN old lockfile   type: 'system'


最后定位在了CERT_HAS_EXPIRED这个错误代码上。


原因:
遇到CERT_HAS_EXPIRED错误通常意味着尝试连接的服务器的SSL证书已过期。这个问题可能出现在你使用的npm镜像上(我用的是淘宝镜像)


解决方案:
方法1:临时忽略SSL证书验证
作为临时解决方案,你可以通过设置npm配置来忽略SSL证书验证。请注意,这种方法会降低安全性,不推荐作为长期解决方案。


npm config set strict-ssl false


安装完所需的包后,最好将此设置还原,以保持更高的安全性:


npm config set strict-ssl true


方法2:更新npm和Node.js
确保你的npm和Node.js版本是最新的。过时的版本可能不会正确处理SSL证书。可以通过下面的命令更新npm和Node.js:


更新npm:
npm install -g npm@latest


更新Node.js:访问Node.js官网下载并安装最新版本。


方法3:更换npm镜像源
如果问题是由特定镜像源的证书问题导致的,尝试更换到官方npm镜像源或其他镜像源:


切换到npm官方镜像源:
npm config set registry https://registry.npmjs.org/


或者,使用其他可用的镜像源,例如华为云镜像源:
npm config set registry https://mirrors.huaweicloud.com/repository/npm/


参考:https://blog.csdn.net/weixin_50503886/article/details/136177499
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号