npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED

npm install时报错code CERT_HAS_EXPIRED

一、报错情况

一直用的好好的,突然今天发现npm install 出问题了,具体报错如下:

npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/vue-loader failed, reason: certificate has expired

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\Environment\nvm\node_cache\_logs\2024-01-22T04_34_51_215Z-debug.log

这就说:npm的证书失效了,它不再支持自签名证书

二、解决方案

查看自己的下载源

npm config get registry

发现我们之前配置了下载镜像源为https开头的,

https://registry.npm.taobao.org/

执行命令清除npm缓存

npm cache clean --force

执行命令取消ssl验证

npm config set strict-ssl false

再次执行npm install ***,还不行可以尝试设置你的npm镜像源为http开头的,不使用https

npm config set registry http://registry.npm.taobao.org

最后附图:
在这里插入图片描述

### 解决方案概述 当遇到 `npm` 报错 `CERT_HAS_EXPIRED` 时,通常是因为目标注册表(如 `https://registry.npm.taobao.org`)使用的 SSL/TLS 证书已过期或无法验证。以下是针对该问题的具体分析和解决方案。 --- #### **原因分析** 错误的核心在于 `npm` 尝试通过 HTTPS 请求访问远程仓库地址(如 `https://registry.npm.taobao.org`),但由于其服务器端的 SSL 证书已经失效或未被信任链识别,从而引发此错误[^1]。 --- #### **临时解决方案** ##### 方法一:切换到官方 NPM 注册表 可以将当前配置中的镜像源更改为默认的官方 NPM 注册表,避免依赖可能存在问题的第三方镜像站点。 ```bash npm config set registry https://registry.npmjs.org/ ``` 执行上述命令后重新运行安装操作即可解决问题。 ##### 方法二:禁用严格SSL模式 如果确实需要继续使用淘宝镜像或其他自定义镜像,则可以通过关闭严格的 SSL 验证来绕过这一限制。(注意:这会降低安全性) ```bash npm set strict-ssl false ``` 或者仅对单次命令生效的方式如下所示: ```bash npm --strict-ssl=false install package_name ``` 尽管这种方法简单快捷,但从长远来看并不推荐长期采用这种方式处理生产环境下的依赖管理任务[^2]。 --- #### **根本性解决办法** 对于希望保留原有设置并修复潜在的安全隐患的情况,可考虑以下措施: ##### 更新本地系统的 CA 根证书库 某些情况下可能是由于操作系统自带的信任根证书列表陈旧所致。因此建议先确认本机上的CA认证机构是否最新版本;如果是Linux发行版则可通过包管理器升级openssl及相关组件; 而对于Windows用户来说,则需手动下载最新的Mozilla Public Suffix List文件,并将其导入至NodeJS环境中去完成相应调整工作[^3]。 另外还可以借助专门工具帮助自动同步最新的受信公钥基础设施(PKI),比如之前提到过的[npm-certstore-update](https://www.npmjs.com/package/npm-certstore-update)插件来进行全局范围内的修正尝试: ```bash npm install -g npm-certstore-update npm-certstore-update ``` 最后再次测试连接状况看是否有改善迹象存在。 --- ### 总结 综上所述,在面对由证书到期所引起的网络请求失败现象时,我们既可以选择快速规避风险(更改源地址或是暂时忽略校验流程),也可以深入探究背后真正成因并通过适当手段彻底消除隐患. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

it's all you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值