npm ERR! code CERT_HAS_EXPIRED & errno CERT_HAS_EXPIRED
时间: 2025-01-18 13:27:30 浏览: 82
### 解决 `npm ERR! code CERT_HAS_EXPIRED` 和 `errno CERT_HAS_EXPIRED`
当遇到 `CERT_HAS_EXPIRED` 错误时,这通常意味着 NPM 尝试连接到的注册表使用的 SSL/TLS 证书已过期。此问题可以通过多种方法来解决。
#### 方法一:清理缓存并禁用严格SSL验证
有时本地缓存可能会导致一些意外行为,因此可以尝试先清除NPM缓存:
```bash
npm cache clean --force
```
接着临时关闭严格的SSL验证,允许不安全的HTTPS请求通过设置配置项实现:
```bash
npm config set strict-ssl false
```
完成上述操作后再重新安装依赖包:
```bash
npm install
```
这种方法虽然能快速解决问题,但并不推荐长期使用,因为会降低安全性[^1]。
#### 方法二:切换镜像源
如果当前使用的镜像源存在问题,则可以选择更换其他可用的镜像源。例如国内开发者可考虑阿里云提供的服务:
获取当前正在使用的镜像地址命令如下所示:
```bash
npm get registry
```
将镜像源更改为官方默认值或其他可靠的第三方镜像源之一:
```bash
npm config set registry https://registry.npmjs.org/
# 或者换成淘宝镜像(适用于中国大陆地区)
npm config set registry https://registry.npmmirror.com/
```
更改完成后再次运行 `npm install` 来测试新配置是否有效[^3]。
#### 方法三:更新系统时间和日期
确保系统的日期时间正确无误也很重要,错误的时间可能导致无法正常校验服务器端返回的有效期内的证书链路。对于某些虚拟机环境来说尤其需要注意这一点。
---
阅读全文