运维必备:10行shell脚本解决ssl证书更换遗漏难题

SSL证书有效期正在逐年缩短,今年3月15日之前购买有效期是1年,3月15日之后购买的有效期只有200天,2027年缩短到100天,最终2029年有效期会缩短到47天。

作为运维人员,如果你也像我一样,手里有好几百个使用https的域名,部署位置也不统一,每年换ssl证书都担心漏换,那今天送你一段shell脚本,仅10来行就能解决漏换问题。

这是一个检测证书有效期的脚本,前面先讲下脚本如何工作,如果不想看也可以直接跳到文末复制脚本运行即可。

1 通过openssl来读取证书信息

[root@vm ~]# openssl s_client -connect www.baidu.com:443 -servername www.baidu.com -showcerts </dev/null 2>/dev/null | openssl x509 -dates -nooutnotBefore=Jul 907:01:022025 GMTnotAfter=Aug 1007:01:012026 GMT

参数说明:

  • openssl s_client, OpenSSL 的客户端工具,用于建立 SSL连接

  • -connect www.baidu.com:443, 指定要连接的目标域名 + 端口

  • -servername www.baidu.com, 指定servername

  • -showcerts, 输出完整的证书链

  • </dev/null, 关闭标准输入不等待用户输入直接输出证书并退出

  • 2>/dev/null, 重定向错误输出到空(过滤连接过程中的警告 / 调试信息)

  • openssl x509, 管道传递证书内容,用 x509 工具解析

  • -dates, 仅输出证书的生效时间(notBefore)和过期时间(notAfter)

  • -noout, 不输出证书的原始编码内容,否则输出内容过多会乱

2 提取证书过期时间

grep "notAfter" | cut -d'=' -f 2

notAfter 这一行是证书的过期时间,通过grep取出这一行,通过cut命令指定分隔符为“=”,输出分割后的第二列,即过期时间 Aug 1007:01:012026 GMT

3 将获取的时间转换为unix时间戳

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,这里转换成时间戳方便后续计算时间。

[root@vm ~]# date -d "Aug 10 07:01:01 2026 GMT" +%s1786345261
  • date -d 是 Linux 中用于显示指定日期或时间的命令。它允许用户通过字符串格式化来解析和显示特定的日期和时间。

  • +%s 将解析后的时间转换为 Unix 时间戳

4 完整代码

​​​​​​​​​​​​

#命令行执行sh ssl_check.sh domain.txt 2>/dev/null#sh ssl_check.sh domain.txt#DOMAIN="xx.yy.com" #域名#PORT=443 #端口#域名文件domain.txt格式xx.yy.com:443for i in `cat $1`;doDOMAIN=`echo$i|awk -F ':''{print $1}'`;PORT=`echo$i | awk -F ':''{print $2}'` ;# 获取SSL证书信息SSL_CERT_INFO=$(openssl s_client -connect ${DOMAIN}:${PORT} -servername ${DOMAIN} -showcerts </dev/null 2>/dev/null | openssl x509 -dates -noout)# 提取证书有效期结束时间CERT_END_DATE=$(echo"${SSL_CERT_INFO}" | grep "notAfter" | cut -d'=' -f 2)# 将时间转换为Unix时间戳方便后续计算剩余天数END_TIMESTAMP=$(date -d "${CERT_END_DATE}" +%s)#当前系统时间CURRENT_TIMESTAMP=$(date +%s)# 计算剩余天数CERT_DAYS_REMAINING=$(( (${END_TIMESTAMP} - ${CURRENT_TIMESTAMP}) / 86400 ))#echo $i $CERT_DAYS_REMAINING#正在检测时输出.....echo -n .#证书有效期小于20天且不等于0,等于0的可能是没有ssl证书if [ $CERT_DAYS_REMAINING -lt 20 ] && [ $CERT_DAYS_REMAINING -ne 0 ]; thenecho"${DOMAIN}${PORT} 剩余${CERT_DAYS_REMAINING}天"fidone

5 运行脚本

  1. 把脚本文件另存为ssl_check.sh

  2. 准备一份域名清单,准备一份域名清单domain.txt,每行一个域名:端口号,格式如xx.yy.com:443

  3. 把22行证书有效期改为300天后执行sh ssl_check.sh domain.txt 结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196829.shtml

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

相关文章

考虑非居民自建共享储能的含蓄热式电采暖用户冬季日前优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

从零开始:Chatbox开源项目架构深度拆解与实战指南

从零开始&#xff1a;Chatbox开源项目架构深度拆解与实战指南 【免费下载链接】chatbox Chatbox是一款开源的AI桌面客户端&#xff0c;它提供简单易用的界面&#xff0c;助用户高效与AI交互。可以有效提升工作效率&#xff0c;同时确保数据安全。源项目地址&#xff1a;https:/…

Arduino ESP32完整安装指南:3步快速解决常见问题

Arduino ESP32完整安装指南&#xff1a;3步快速解决常见问题 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 Arduino ESP32开发板凭借其强大的WiFi和蓝牙功能&#xff0c;已成为物联网项目…

ImageGlass终极指南:免费开源图像查看器的5个核心优势

ImageGlass终极指南&#xff1a;免费开源图像查看器的5个核心优势 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows系统自带的图片查看器功能单一而烦恼吗&…

大语言模型的推理能力:未来发展方向

大语言模型的推理能力:未来发展方向 关键词:大语言模型、推理能力、未来发展、自然语言处理、人工智能 摘要:本文围绕大语言模型的推理能力展开深入探讨。首先介绍了大语言模型推理能力相关背景,包括目的范围、预期读者等。接着阐述了核心概念与联系,详细讲解了核心算法原理…

轻量级大模型怎么用?gpt-oss-20b-WEBUI详细体验分享

轻量级大模型怎么用&#xff1f;gpt-oss-20b-WEBUI详细体验分享 最近试用了CSDN星图镜像广场上新上架的 gpt-oss-20b-WEBUI 镜像&#xff0c;整个过程比预想中更顺滑——没有编译报错、不用手动装依赖、不折腾CUDA版本&#xff0c;点几下就跑起来了。它不像动辄要80G显存的70B…

下一代编程助手:IQuest-Coder-V1技术架构深度解析

下一代编程助手&#xff1a;IQuest-Coder-V1技术架构深度解析 你有没有遇到过这样的情况&#xff1a;写代码时卡在一个复杂的逻辑问题上&#xff0c;翻遍文档、查遍Stack Overflow&#xff0c;还是找不到突破口&#xff1f;或者在参与算法竞赛时&#xff0c;明明思路接近正确&…

Open-AutoGLM云端API调用教程,免本地部署超省心

Open-AutoGLM云端API调用教程&#xff0c;免本地部署超省心 1. 前言&#xff1a;当大模型有了“手” 你有没有想过&#xff0c;让AI真正帮你操作手机&#xff1f;不是简单的语音唤醒&#xff0c;而是像真人一样看屏幕、点按钮、滑动页面&#xff0c;甚至完成一整套复杂的任务…

数据库迷局:select for update 锁的真相,90%的开发者都踩过坑!

一、开篇直击痛点:为什么需要 select for update 锁? 做后端开发的同学,大概率遇到过这样的场景: 电商秒杀:100 件商品,1000 人抢购,如何避免超卖? 余额支付:用户账户余额 100 元,同时发起两笔 80 元支付,如何防止余额为负? 库存扣减:多线程同时操作同一商品库存…

PyTorch-2.x-Universal-Dev-v1.0镜像数据处理能力全面评测

PyTorch-2.x-Universal-Dev-v1.0镜像数据处理能力全面评测 1. 镜像核心特性与环境配置 PyTorch-2.x-Universal-Dev-v1.0 是一款为深度学习开发者精心打造的通用开发环境镜像。该镜像基于官方 PyTorch 底包构建&#xff0c;预装了常用的数据处理、可视化和交互式开发工具&…

吐血推荐专科生必用AI论文软件TOP10

吐血推荐专科生必用AI论文软件TOP10 专科生论文写作的“隐形助手”测评 随着AI技术的不断进步&#xff0c;越来越多的专科生开始借助AI论文软件提升写作效率与质量。然而&#xff0c;面对市场上种类繁多的工具&#xff0c;如何选择一款真正适合自己的成了难题。为此&#xff0c…

7大国产操作系统,每个都很优秀!

7大国产操作系统,每个都很优秀!Posted on 2026-01-22 00:00 lzhdim 阅读(0) 评论(0) 收藏 举报想象一下,如果你的电脑、手机甚至服务器都运行着完全由中国团队打造的操作系统,会是怎样的体验?过去几十年,Wi…

动手实操:YOLOv10官方镜像训练全过程分享

动手实操&#xff1a;YOLOv10官方镜像训练全过程分享 你有没有经历过这样的场景&#xff1f;为了调一个学习率&#xff0c;反复跑好几轮训练&#xff1b;明明数据没问题&#xff0c;模型却总是收敛不理想&#xff1b;好不容易训完&#xff0c;部署时又卡在ONNX导出失败……这些…

西门子博途(TIA Portal)无法搜索不到PLC?怎么解决?

在使用西门子博途(TIA Portal)的时候偶尔,会遇到搜索不到PLC的问题,甚至有时候PLC网口直接连接PC网口都搜索不到,出现这个问题的时候确实比较耽误事情。怎么排查呢?一、问题在使用西门子博途(TIA Portal)的时候偶尔…

计算机Java毕设实战-基于springboot的医药药品管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

MinerU金融研报处理:图表与文字分离实战教程

MinerU金融研报处理&#xff1a;图表与文字分离实战教程 在金融分析、投资研究和企业尽调中&#xff0c;我们每天都要面对大量PDF格式的研报。这些文档往往结构复杂&#xff1a;多栏排版、嵌入表格、专业公式、趋势图表交织在一起&#xff0c;传统复制粘贴方式不仅效率低&…

零基础玩转Qwen3-Embedding:4B模型保姆级部署教程

零基础玩转Qwen3-Embedding&#xff1a;4B模型保姆级部署教程 1. 为什么你需要关注 Qwen3-Embedding-4B&#xff1f; 你有没有遇到过这些问题&#xff1a; 想搭建一个智能搜索系统&#xff0c;但传统关键词匹配效果差&#xff1f;做推荐系统时&#xff0c;发现用户行为数据不…

DALLE 2, Stable Diffusion和 Midjourney

https://blog.csdn.net/2502_91865303/article/details/149330161 DALLE 2 与 Stable Diffusionhttps://zhuanlan.zhihu.com/p/589223078 理解DALLE 2, Stable Diffusion和 Midjourney的工作原理

实用丨维普AIGC降AI工具推荐 + 操作顺序

维普AIGC检测高&#xff1f;6款工具帮你降到合格线 TL;DR&#xff1a;维普AIGC检测算法和知网不同&#xff0c;很多知网能过的工具在维普可能过不了。实测对维普效果最好的是嘎嘎降AI&#xff08;67%→9%&#xff09;&#xff0c;其次是比话降AI&#xff08;60%→12%&#xff0…

springboot_ssm841智慧餐厅点餐管理系统ssm三个角色 员工

目录 具体实现截图员工角色功能摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 员工角色功能摘要 在SpringBootSSM框架开发的智慧餐厅点餐管理系统中&#xff0c;员工角色是系统的核心操作…