[每周一更]-(第105期):SSL证书过期后引发的DNS缓存问题

server/2024/9/23 5:43:24/

在这里插入图片描述

问题回顾:

​ 上班路上收到ZeroSSL邮件通知我们清点项目的SSL证书到期了,到公司还是登录网址查看信息,一看果然是7.10也就是今天到期,开始看下acme.sh的定制任务为何没生效,一看crontab脚本,日志任务丢垃圾桶,没办法,手动更新,然后更新期间会报错:error code:35,好在不影响生成证书文件,就没理会,在具体项目中查看证书文件也更新最新文件,继续访问目标网址,发现直接DNS_PROBE_FINISHED_NXDOMAIN,无法访问,手机端访问也是502,在nginx重启时候还报错了前端配置文件问题,屏蔽相关代码,网站仍然不通,让前端本地跑项目反馈可以跑通(由于前端请求的API是目标域名的二级域名,所有不受影响,这期间还排查了管理端也是二级域名也能正常工作),再考虑应该还是域名解析DNS问题,后边想到之前该项目部署过阿里云waf,通过相关命令在服务器查看域名解析情况,果然域名CNAME还是WAF的地址,遗漏了这个环节,后边将域名解析的waf删除,重新重启nginx,至此项目正常可以访问。

从以上过程,可以总结我们针对问题的思路,如何发现问题,找到问题的因素,一一验证排查,期间由于WAF关闭较早,SSL证书没过期,没有及时排查到DNS解析的问题,其实中间还浪费了部分时间,针对该问题,以下相关知识点做个记录,为后来人起个指引作用,反观解决过程,其实问题点很简单,只是没有一开始及时发现。

具体细节流程

  • zeroSSL邮件提醒

在这里插入图片描述

  • 网站不通

在这里插入图片描述

  • acme重新生成证书

在这里插入图片描述

  • 前端项目中报错配置
    在这里插入图片描述

  • 查看域名解析地址

在这里插入图片描述

  • 查看阿里云中域名解析确实是waf地址

在这里插入图片描述

  • 删除waf,后正确解析IP

在这里插入图片描述

  • 网站恢复后颁发者信息

在这里插入图片描述

  • 查看nginx的状态:service nginx status,报错是前端配置文件中错误
nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) (Result: exit-code) since Wed 2024-07-10 09:53:48 CST; 23min agoProcess: 1140 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)Process: 21695 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=1/FAILURE)Process: 1147 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Process: 1143 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)Main PID: 1150 (nginx)Tasks: 5Memory: 12.0MCPU: 360msCGroup: /system.slice/nginx.service├─ 1150 nginx: master process /usr/sbin/nginx -g daemon on; master_process on├─17920 nginx: worker process                           ├─17921 nginx: worker process                           ├─17922 nginx: worker process                           └─17923 nginx: worker process                           Jul 10 09:59:15 k8s-node systemd[1]: nginx.service: Control process exited, code=exited status=1
Jul 10 09:59:15 k8s-node systemd[1]: Reload failed for A high performance web server and a reverse proxy server.
Jul 10 10:00:01 k8s-node systemd[1]: Reloading A high performance web server and a reverse proxy server.
Jul 10 10:00:01 k8s-node systemd[1]: Reloaded A high performance web server and a reverse proxy server.
Jul 10 10:03:11 k8s-node systemd[1]: Reloading A high performance web server and a reverse proxy server.
Jul 10 10:03:11 k8s-node systemd[1]: Reloaded A high performance web server and a reverse proxy server.
Jul 10 10:17:42 k8s-node systemd[1]: Reloading A high performance web server and a reverse proxy server.
Jul 10 10:17:42 k8s-node nginx[21695]: nginx: [emerg] host not found in upstream "www.varclear.com" in /etc/nginx/clinical/community_frontend.conf:37
Jul 10 10:17:42 k8s-node systemd[1]: nginx.service: Control process exited, code=exited status=1

SSL

针对SSL的排查过程

强制更新域名证书

Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 35

定时更新任务

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

DNS

针对DNS的排查过程

检查域名状态

WHOIS查询:通过WHOIS查询工具检查域名的状态,确保域名没有过期或被锁定。
DNS Propagation:使用DNS传播检查工具(例如WhatsMyDNS)来确认DNS记录是否已正确传播到全球各地的DNS服务器。

检查和验证

清理DNS缓存后,可以使用 dig 或 nslookup 命令验证DNS解析是否正确:

dig yourdomain.com

或者

nslookup yourdomain.com

这些命令会返回DNS解析的详细信息,你可以检查输出是否符合预期。

额外的DNS调试工具

如果需要更多调试工具,可以安装并使用 bind-utils(包含 dig 和 nslookup 等工具):

sudo apt-get install bind9-utils  # Debian/Ubuntu
sudo yum install bind-utils       # CentOS/RHEL
sudo dnf install bind-utils       # Fedora

针对该项目访问遇到的问题,其中存在一些基础知识点的理解,需要单独写文章来讲解DNS及SSL的工作过程。


http://www.ppmy.cn/server/59902.html

相关文章

NaiveUI与ElementUI 比较分析

前言 在前端开发的广阔领域中,Vue.js作为最流行的前端框架之一,为开发者提供了丰富的组件库,其中NaiveUI和ElementUI是两个备受瞩目的选择。本文将深入分析这两个组件库的特点、优劣势以及适用场景,帮助开发者在项目中做出更合适…

合合信息:引领智能文档处理革命,微秒级的大模型加速器

文章目录 前言文档解析引擎:大模型加速器图表解析 ACGE模型:智能搜索的利器TextIn:智能文档处理的领头羊Textln: 用户真实体验感受 结束语 前言 在信息泛滥的今天,数据的海洋需要智能技术来导航。合合信息,智能文档处…

数据结构第22节 堆排序优化

堆排序是一种基于比较的排序算法,其核心是使用一种叫做“堆”的数据结构。堆通常是一个完全二叉树的数组表示,在数组中可以快速找到最大值或最小值。堆排序可以分为两种类型:最大堆和最小堆。 在最大堆中,父节点的键始终大于或等…

Sentinel-1 Level 1数据处理的详细算法定义(二)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程,以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下: Sentinel-1 L…

软件系统培训方案(word原件)

1. 培训概述 2. 培训目的 3. 培训对象及要求 3.1. 培训对象 3.2. 培训人员基本要求 4. 培训方式 5. 培训内容 6. 培训讲师 7. 培训教材 8. 培训质量保证 8.1. 用户培训确认报告 8.2. 培训疑问解 软件资料清单列表部分文档: 工作安排任务书,…

【YOLOv8】 用YOLOv8实现数字式工业仪表智能读数(一)

上一篇圆形表盘指针式仪表的项目受到很多人的关注,咱们一鼓作气,把数字式工业仪表的智能读数也研究一下。本篇主要讲如何用YOLOV8实现数字式工业仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。 目录 &…

基于AT89C51单片机超声波水位液位控制系统设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的1616点阵LED显示器字符滚动显示设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 设计任务与要求 原理图 仿真图 代码 系统论文 资源下载 设计任务与要求…