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

在这里插入图片描述

问题回顾:

​ 上班路上收到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.mzph.cn/diannao/45693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat和nginx实现动静分离

访问nginx就是静态页面,nginx代理index.jsp可以访问tomcat的动态页面。 实验 1、设备以及IP地址 nginx1 192.168.10.41 tomcat1 192.168.10.51 tomcat2 192.168.10.52 2、tomcat1 的配置 创建动态页面 cd /usr/local/tomcat/webapps 创建一个目录作为一个ser…

复现ORB3-YOLO8项目记录

文章目录 1.编译错误1.1 错误11.2 错误21.3 错误31.4 错误4 1.编译错误 首先ORB-SLAM相关项目已经写过很多篇博客了,从ORB-SLAM2怎么运行,再到现在的项目。关于环境已经不想多说了 1.1 错误1 – DEPENDENCY_LIBS : /home/lvslam/ORB3-YOLO8/Thirdparty…

2024年C#优秀实用的类库推荐

简介 在软件开发领域,随着技术的不断进步和项目的复杂化,使用高质量的类库来加速开发过程、减少错误并提高代码质量变得至关重要。C# 作为一款功能强大的编程语言,拥有众多优秀的类库供开发者选择。本文旨在为您推荐一些在2024年备受推崇的C…

Feature Alignment and Uniformity for Test Time Adaptation--论文笔记

论文笔记 资料 1.代码地址 https://github.com/SakurajimaMaiii/TSD 2.论文地址 https://arxiv.org/abs/2303.10902 3.数据集地址 论文摘要的翻译 TTA在接收训练分布外的测试域样本时对深度神经网络进行自适应。在这样设置下,模型只能访问在线未标记的测试样…

昇思MindSpore学习总结十五 ——基于Mindspore 实现BERT对话情绪识别

1、环境配置 根据实际情况,选择合适版本。 %%capture captured_output # 实验环境已经预装了mindspore2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc…

MYSQL--第七次作业

MYSQL–第七次作业 在product表上创建三个触发器。每次激活触发器后,都会更新operate表。product表和表的内容如下 Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name …

torch之从.datasets.CIFAR10解压出训练与测试图片 (附带网盘链接)

前言 从官网上下载的是长这个样子的 想看图片,咋办咧,看下面代码 import torch import torchvision import numpy as np import os import cv2 batch_size 50transform_predict torchvision.transforms.Compose([torchvision.transforms.ToTensor(),…

ubuntu 24.04 安装telnet服务

1.安装telnet客户端 $sudo apt-get install telnet 2.安装telnet服务器 $sudo apt-get instlal telnetd 3.安装网络守护进程服务程序来管理telnet服务 $sudo apt-get install xinetd 4.修改配置文件inetd.conf $sudo vi /etc/inetd.conf telnet stream tcp nowait telne…

echarts解决数据差异过大的问题

问题描述 使用echarts折线图和柱状图展示数据时,如果数据差异值较大,会导致显示图形差异过大,图表不美观。 如这一组数据[2000000, 200, 0.1, 20, 0, -10, -3000],渲染出来的效果如下图: 可以看到由于最大值和最小值差…

几何距离与函数距离:解锁数据空间中的奥秘

几何距离:直观的空间度量 几何距离,顾名思义,是我们在几何学中熟悉的距离概念,如欧几里得距离、曼哈顿距离和切比雪夫距离等。这些距离度量直接反映了数据点在多维空间中的位置关系。 欧几里得距离:最为人熟知的几何距…

(四)stm32之通信协议

一.串口通信 1、全双工、半双工、单工 单工:只能一个人传输,只能向一个方向传输 半双工:只能一个人传输,可以多个方向传输 全双工:多方传输,多个方向传输 2、同步通信、一步通信 异步通信:双方时钟可以不同步,发送的信息封装(加上起始位、停止位)实现同步,效率低,…

Arrays:专为数组而生的工具类

创建数组 1.copyOf:复制指定的数组,截取或用 null 填充 String[] intro new String[] { "沉", "默", "王", "二" }; String[] revised Arrays.copyOf(intro, 3); String[] expanded Arrays.copyOf(intro, …

同三维T80004ESL编码器视频使用操作说明书:高清HDMI编码器,高清SDI编码器,4K超清HDMI编码器,双路4K超高清编码器

同三维T80004ESL编码器视频使用操作说明书:高清HDMI编码器,高清SDI编码器,4K超清HDMI编码器,双路4K超高清编码器 同三维T80004ESL编码器视频使用操作说明书:高清HDMI编码器,高清SDI编码器,4K超清…

elk部署springboot

1.设置es版本&#xff1a; <properties><java.version>1.8</java.version><elasticsearch.version>6.8.13</elasticsearch.version> </properties> 2.导入ES依赖&#xff0c;JSON依赖&#xff1a; <dependency><groupId>co…

【全网最全】2024年辽宁省大学生数学建模竞赛完整思路解析+代码+论文

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

Vue和Element UI 路由跳转,侧边导航的路由跳转,侧边栏拖拽

首先看布局&#xff0c;因为我的用于页面显示的 <router-view> 是通过重定向定位到登陆页的&#xff0c;然后通过登陆页跳转到主页。项目中用到了点击侧边栏的跳转&#xff0c;所以记录下来&#xff0c;方便有需要的人用到~ 阐述 &#xff08;1&#xff09;.content{ di…

26.7 Django单表操作

1. 模型管理器 1.1 Manager管理器 Django ORM中, 每个Django模型(Model)至少有一个管理器, 默认的管理器名称为objects. objects是一个非常重要的管理器(Manager)实例, 它提供了与数据库进行交互的接口.通过管理器, 可以执行数据库查询, 保存对象到数据库等操作.objects管理器…

sqlalchemy通过查询参数生成query

sqlalchemy通过查询参数生成query 在SQLAlchemy中,可以使用查询参数来动态生成查询。这通常通过使用.filter()方法和Python的比较运算符来实现。以下是一个简单的示例,展示如何使用查询参数生成查询: 假设我们有一个名为User的模型(表),它具有id、username和email字段。…

【Unity学习笔记】第十九 · 物理引擎约束求解解惑(LCP,最优,拉格朗日乘数法,SI,PGS,基于冲量法)

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/140309494 作者&#xff1a;CSDN|Ringleader| 在学习物理引擎过程中&#xff0c;有几大问题一直困扰着我&#xff1a; 约束求解到底是LCP还是带约束最优问题&#xff1f;约束求解过程中拉格朗日乘数法…

SpringBoot整合JWT示例教程

1. JWT简介 JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间作为 JSON 对象安全地传输信息。由于这些信息是经过数字签名的&#xff0c;因此可以被验证和信任。JWT 通常用于身份验…