猫头虎带你解决:error Error: certificate has expired
🐯猫头虎带你解决:error Error: certificate has expired 💥
今天有粉丝问猫哥:“🐯猫头虎,我在 Node.js 项目中使用 Yarn 安装包时遇到了一个错误:Error: certificate has expired。你能帮忙解决这个问题吗?” 当然!今天猫头虎就带大家一起深入剖析这个问题的根源,并提供详细的解决方案,让大家轻松摆脱这种常见的SSL证书问题。
📋 问题描述
在使用 yarn install 或其他网络请求相关的操作时,你可能会遇到以下错误:
error Error: certificate has expiredat TLSSocket.onConnectSecure (node:_tls_wrap:1659:34)at TLSSocket.emit (node:events:517:28)at TLSSocket._finishInit (node:_tls_wrap:1070:8)at ssl.onhandshakedone (node:_tls_wrap:856:12)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
这个问题主要是由于SSL证书过期,导致 Node.js 无法验证服务器的身份,进而阻止了 Yarn 的包管理操作。
猫头虎是谁?
大家好,我是 猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评测图文、产品使用体验图文、产品优点推广文稿、产品横测对比文稿,以及线下技术沙龙活动参会体验文稿。内容涵盖云服务产品评测、AI产品横测对比、开发板性能测试和技术报告评测等。
目前,我活跃在CSDN、51CTO、腾讯云开发者社区、阿里云开发者社区、知乎、微信公众号、视频号、抖音、B站和小红书等平台,全网拥有超过30万的粉丝,统一IP名称为 猫头虎 或者 猫头虎博主。希望通过我的分享,帮助大家更好地了解和使用各类技术产品。
作者名片 ✍️
- 博主:猫头虎
- 全网搜索关键词:猫头虎
- 作者微信号:Libin9iOak
- 作者公众号:猫头虎技术团队
- 更新日期:2024年08月08日
- 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!
加入我们AI共创团队 🌐
- 猫头虎AI共创社群矩阵列表:
- 点我进入共创社群矩阵入口
- 点我进入新矩阵备用链接入口
加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀
部分专栏链接:
🔗 精选专栏:
- 《面试题大全》 — 面试准备的宝典!
- 《IDEA开发秘籍》 — 提升你的IDEA技能!
- 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!
- 《100天精通Golang(基础入门篇)》 — 踏入Go语言世界的第一步!
- 《100天精通Go语言(精品VIP版)》 — 踏入Go语言世界的第二步!
文章目录
- 🐯猫头虎带你解决:**error Error: certificate has expired** 💥
- 📋 问题描述
- 猫头虎是谁?
- 作者名片 ✍️
- 加入我们AI共创团队 🌐
- 加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀
- 🐯 问题分析
- 常见场景:
- 🛠️ 解决方案
- 1. ⏳ **更新系统证书**
- 对于 Linux 用户:
- 对于 Mac 用户:
- Windows 用户:
- 2. 🔄 **更新 Node.js 版本**
- 3. 🔧 **忽略证书验证(临时方案,不推荐)**
- 4. 💡 **更新 Yarn 的 SSL 配置**
- 5. 🔑 **手动更新过期证书**
- 📝 避免此类问题的建议
- 📚 参考资料
- 💬 常见 QA
- 📊 本文总结
- 🔮 未来行业发展趋势
- 联系我与版权声明 📩
🐯 问题分析
这个问题的根本原因是SSL证书的到期。当我们使用 https 请求时,服务器会返回其SSL证书以确认其身份。证书有有效期,过了这个时间,客户端会认为该服务器的证书不再安全,进而抛出错误。
常见场景:
- 使用 Yarn、npm 安装包时抛出错误。
- 请求需要 HTTPS 的 API 时,因证书过期导致失败。
- 访问某些需要 SSL 安全通信的服务器时出现问题。
这是常见的证书过期问题。
🛠️ 解决方案
接下来,我们一起来看看几种常见的解决方案,每种方法都可以帮助你快速恢复开发环境。
1. ⏳ 更新系统证书
系统自带的 SSL 证书可能已经过期,需要手动更新。以下是 Linux 和 Mac 系统的更新步骤:
对于 Linux 用户:
sudo apt-get update
sudo apt-get install --reinstall ca-certificates
对于 Mac 用户:
brew update
brew install curl-ca-bundle
Windows 用户:
你需要手动更新根证书,访问 微软官网 下载更新包。
2. 🔄 更新 Node.js 版本
有时,证书问题可能是由于 Node.js 版本过旧导致的。可以通过以下命令更新 Node.js:
# 查看当前版本
node -v# 使用n来更新Node.js(需提前安装n模块)
sudo npm install -g n
sudo n stable
升级 Node.js 到最新版本后,试着重新执行 yarn install。
3. 🔧 忽略证书验证(临时方案,不推荐)
如果你只是想快速绕过此问题,可以选择临时忽略证书验证。但需要注意,这会降低通信的安全性。仅在开发环境中使用!
export NODE_TLS_REJECT_UNAUTHORIZED=0
你可以在 bash 中运行这条命令,再执行 yarn install。不过,生产环境中不建议使用此方法。
4. 💡 更新 Yarn 的 SSL 配置
你也可以通过修改 Yarn 的配置来忽略证书问题。使用以下命令关闭 Yarn 的证书校验:
yarn config set "strict-ssl" false -g
这种方式适用于 Yarn 的全局设置,会关闭 SSL 校验,但需要谨慎使用。
5. 🔑 手动更新过期证书
如果你明确知道哪个证书过期了,可以选择手动更新该证书。以下是通过 OpenSSL 更新证书的方法:
openssl s_client -showcerts -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > ~/example-com.pem
sudo cp ~/example-com.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
这将下载目标服务器的证书并更新本地证书存储。
📝 避免此类问题的建议
为了避免将来再次遇到此类问题,猫头虎给出以下建议:
- 定期更新系统证书,尤其是当你频繁依赖网络请求时。
- 保持 Node.js 和 Yarn 的版本更新,因为新的版本通常修复了旧版中的证书问题。
- 定期检查你的依赖包的源站,确保使用可信赖的 HTTPS 证书。
📚 参考资料
- Yarn 官方文档
- Node.js SSL 文档
- OpenSSL 安全指南
💬 常见 QA
Q1: 忽略 SSL 证书安全性会有风险吗?
A1: 忽略 SSL 校验确实会降低安全性。推荐仅在开发环境中使用,生产环境必须使用有效证书。
Q2: 如果更新 Node.js 和系统证书还是不行怎么办?
A2: 可以尝试手动更新目标服务器的证书,或检查网络代理配置,确保没有被中间人攻击拦截 SSL 证书。
📊 本文总结
| 方案 | 描述 | 适用场景 | 是否推荐 |
|---|---|---|---|
| 更新系统证书 | 通过命令更新 SSL 证书 | 系统证书过期 | 强烈推荐 |
| 更新 Node.js | 更新 Node.js 版本 | Node.js 版本过低 | 推荐 |
| 忽略证书验证 | 临时忽略证书校验 | 开发环境 | 不推荐 |
| 更新 Yarn 配置 | 关闭 Yarn SSL 校验 | Yarn SSL 错误 | 谨慎使用 |
| 手动更新证书 | 手动更新过期的 SSL 证书 | 特定服务器证书过期 | 推荐 |
🔮 未来行业发展趋势
随着互联网安全要求的日益严格,SSL证书管理将变得越来越重要。自动化证书更新和管理工具(如 Let’s Encrypt)将成为行业标准。对于开发者来说,掌握 SSL/TLS 的基础知识将有助于提升项目的安全性。
加入猫头虎AI共创社群,一起探讨前沿技术!
更多最新 AI 和前端技术资讯,欢迎加入猫头虎 AI 共创社群!

👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击文末名片获取更多信息。我是猫头虎博主,期待与您的交流! 🦉💬

联系我与版权声明 📩
- 联系方式:
- 微信: Libin9iOak
- 公众号: 猫头虎技术团队
- 版权声明:
本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。
点击✨⬇️下方名片⬇️✨,加入猫头虎AI共创社群矩阵。一起探索科技的未来,共同成长。🚀
相关文章:
猫头虎带你解决:error Error: certificate has expired
🐯猫头虎带你解决:error Error: certificate has expired 💥 今天有粉丝问猫哥:“🐯猫头虎,我在 Node.js 项目中使用 Yarn 安装包时遇到了一个错误:Error: certificate has expired。你能帮忙解…...
盘点2024年4款高效率的语音转文字工具。
语音转换文字软件真的是一种提高效率的神器,我在工作中常常因为手动记录太慢而选择录音。事后在形成记录,但效率比较低。自从知道有直接转换的工具之后,我有再多的录音都不怕了。如果大家也有跟我一样的工作时,可以试试使用这些语…...
记录Mac编译Android源码踩过的坑
学习Android源码,如果电脑配置还不错,最好还是下载一套源码,经过编译后导入到Android Studio中来学习,这样会更加的直观,代码之间的跳转查看会更加方便。因此,笔者决定下载并编译一套源码,以利于…...
C++ 数据结构算法细节相关
细节 队列 这段代码实现的是二叉树的层序遍历,也就是按照树的层次,一层一层地遍历节点。下面我会为你详细解释这段代码。 queue <TreeNode*> q; 这是一个队列,队列中存放的是指向TreeNode的指针。队列(queue)是…...
【HTML5】html5开篇基础(1)
1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…...
C#自定义曲线绘图面板
一、实现功能 1、显示面板绘制。 2、拖动面板,X轴、Y轴都可以拖动。 3、显示面板缩放,放大或者缩小。 4、鼠标在面板中对应的XY轴数值。 5、自动生成的数据数组,曲线显示。 6、鼠标是否在曲线上检测。 二、界面 拖动面板 鼠标在曲线上…...
Java后端面试题+下一篇答案+实况场景题
uu们大家好!市面上面试题很多,这边汇总并更新一下java后端面试的题目,助大家早日斩下心仪的offer!!(下次跟新场景题...等我多碰几次壁...哈哈哈哈哈) 这边放题目,下一篇跟新所有另面…...
完美解决vant浮动气泡+弹出菜单
使用框架: vue3,vant4 项目需求: 需要有一个浮动气泡,点击弹出导航菜单 遇到的问题: 1. 使用van-floating-bubble包裹van-popover,但点击后只会重复显示不能隐藏 2. popover位置固定,不能根据…...
SpringSecurity -- 入门使用
文章目录 什么是 SpringSesurity ?细节使用方法 什么是 SpringSesurity ? 在我们的开发中,安全还是有些必要的 用 拦截器 和 过滤器 写代码还是比较麻烦。 SpringSecurity 是 SpringBoot 的底层安全默认选型。一般我们需要认证和授权…...
C语言习题~day33
1.以下程序运行时,若输入1abcedf2df输出结果是() #include <stdio.h> int main() { char a 0, ch; while ((ch getchar()) ! \n) { if (a % 2 ! 0 && (ch > a && ch < z)) ch ch - a A; a; putchar(ch); }…...
作业报告┭┮﹏┭┮(Android反调试)
一:Android反调试 主要是用来防止IDA进行附加的,主要的方法思路就是,判断自身是否有父进程,判断是否端口被监听,然后通过调用so文件中的线程进行监视,这个线程开启一般JNI_OnLoad中进行开启的。但是这个是…...
在 Delphi BSD11中安装 DCU 格式的第三方组件库
在 Delphi BSD 11 中安装 DCU 格式的第三方组件库可以按照以下步骤进行: 打开 Delphi:启动 Delphi 开发环境。 选择安装组件: 在菜单栏中,选择 Component -> Install Component。 选择 DCU 文件: 在弹出的对话框中…...
综合题第二题(路由器的配置)
题目 如何计算子网掩码 第一类 我们可以观察到上图的IP地址后面有“/26”、“30”。我们都知道子网掩码是由多个连续“1”和多个连续“0”组成的,“、26”表示子网掩码的二进制表达中有26个1。 例如:156.95.9.128/26 1111 1111.1111 1111.1111 1111.1…...
人工智能概览
目录 什么是人工智能 人工智能的历史与发展 人工智能发展时间轴示意图: 人工智能的主要分支 机器学习与深度学习在AI中的地位 什么是人工智能 人工智能(Artificial Intelligence, AI)是指由人制造出来的具有一定智能的系统,能够理…...
[vulnhub] Prime 1
https://www.vulnhub.com/entry/prime-1,358/ 主机发现端口扫描 探测存活主机,137是靶机 nmap -sP 192.168.75.0/24 // Starting Nmap 7.93 ( https://nmap.org ) at 2024-09-22 16:25 CST Nmap scan report for 192.168.75.1 Host is up (…...
JavaSE——lombok、juint单元测试、断言
一、lombok的使用 默认jvm不解析第三方注解,需要手动开启 链式调用 二、juint单元测试 下载juint包 public class TestDemo {// 在每一个单元测试方法执行之前执行Beforepublic void before() {// 例如可以在before部分创建IO流System.out.println("befor…...
商标价值如何评估与增值?
商标是企业的标志,代表着企业的产品或服务质量、信誉和形象。一个具有高知名度和美誉度的商标,能够为企业带来巨大的商业价值。它不仅可以帮助企业在市场中脱颖而出,吸引消费者的关注和购买,还可以作为企业的重要资产进行融资、并…...
linux命令之firewall-cmd用法
firewall-cmd Linux上新用的防火墙软件,跟iptables差不多的工具 补充说明 firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第…...
深入浅出CSS盒子模型
“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩!什么是盒子模型?盒子模型的组成部分详解1. 内容区(Content)2. 内边距(Padding)3. 边框(Border&am…...
字符编码发展史4 — Unicode与UTF-8
上一篇《字符编码发展史3 — GB2312/Big5/GBK/GB18030》我们讲解了ANSI编码中的GB2312/Big5/GBK/GB18030。本篇我们将继续讲解字符编码的第三个发展阶段中的Unicode与UTF-8。 2.3. 第三个阶段 国际化 前面提到的第二个阶段,各个国家和地区各自为政,纷纷…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
