您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

SSL 证书过期巡检脚本

时间:2023-07-26 14:33:38  来源:微信公众号  作者:咸鱼运维杂谈

我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请。如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响

 

所以说我们要每隔一定时间去检查网站上的 SSL 证书是否过期

 

如果公司业务体量较大的话,肯定不止一个域名,而一个域名后面又会对应着多台机器,如果我们手动输入命令一台台检测的话,所需要的精力和时间是很大的

 

那么今天咸鱼跟大家介绍一个自己平常在用的自动检测 SSL 过期时间的 shell 脚本

 

完整代码在文末

 
思路

 

前面我们说到,一个公司(一个业务)底下可能会有多个域名多个 IP 地址,所以说我们需要整理出来放到一个文件里面,如下所示

图片

 

 

整理出来之后,后面只需要循环遍历 domAIn.txt 中的每一行内容,然后把域名和 ip 地址分别提取出来一个一个去检测就行了

 

首先我们对 domain.txt 中的内容进行循环遍历,提取出域名和 ip 池

图片

 

然后再遍历 ip 池,取出每一个 ip 地址,然后执行检测命令,把检测到的结果存进 text 变量里

图片

 

我们着重看下检测命令

图片

 

图片

 

输出信息如下(即 text 变量内容)

图片

 

其中 notBefore 是开始时间,notAfter 是过期时间

 

需要注意的是,如果提取不到 SSL 证书的信息,那么  text  里面是没有内容的,所以在检测过期时间之前我们需要判断一下

图片

 

然后我们提取出输出的 SSL 证书信息中 notAfter  的值,然后转换成时间戳的形式,并且求出当前的时间戳

图片

 

最后我们用过期时间减去当前时间,得出剩余时间,再对剩余时间做判断

图片

 

我们来看下执行结果:

  • 证书未过期

图片

 

  • 证书快过期

图片

 

  • 证书已过期

图片

 

 
完整脚本

 

for line in $(cat domain.txt)do        domain=$(echo ${line} | awk -F':' '{print $1}')        ip_pool=$(echo ${line} | awk -F '[a-z]:' '{print $2}' | sed 's/,/ /g')        for ip in ${ip_pool}        do                echo -e "e[33m---------------start to check---------------e[0m"                echo -e "ip:${ip}ndomain:${domain}"
                text=$(echo | openssl s_client -servername ${domain} -connect ${ip}:443 2>/dev/null | openssl x509 -noout -dates )                # 判断命令是否执行成功,执行成功的话 text 变量里面是有内容的                if [[ ${text} ]]                 then                    end_date=$(echo "$text" | grep -i "notAfter" | awk -F '=' '{print $2}') # 证书过期时间                    end_timestamp=$(date -d "$end_date" +%s) # 转换成时间戳
                    current_timestamp=$(date +%s) # 当前时间戳
                    # 如果证书过期时间减去当前时间的天数小于七天的话,则提示需要准备更换证书了                    remain_date=$(( (${end_timestamp} - ${current_timestamp}) / 86400 ))                    if [[ ${remain_date} -lt 7 && ${remain_date} -ge 0 ]]                    then                        echo -e "e[31m剩余时间小于七天!请及时更换证书!e[0m"                        echo -e "e[31mip: ${ip}, ${domain}e[0m"                    elif [[ ${remain_date} -lt 0 ]]                    then                        echo -e "e[31m证书已过期!请及时更换证书!e[0m"                    else                        echo -e "e[32m剩余天数为:${remain_date}e[0m"                    fi                else                            echo -e "e[31mError!${ip}e[0m"                            echo -e "e[31m${domain}e[0m"                fi        donedone

 



Tags:脚本   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
短视频脚本 原来这么容易写哇~
2023-11-29  Search: 脚本  点击:(57)  评论:(0)  加入收藏
手把手教你写一个Shell脚本部署你的服务
我们都知道,在开发的过程中,有很多部署自己微服务的方式,其中有各种各样的不同操作,比如使用 docker 打包为镜像的方式,还有基础使用 jar 包的方式进行部署,但是呢?使用 jar 包部署...【详细内容】
2023-11-28  Search: 脚本  点击:(137)  评论:(0)  加入收藏
Linux服务器超级实用的Shell脚本,建议收藏!
Shell 脚本是一种强大的工具,可以在各种领域中用于提高工作效率、简化任务和自动化常见工作流程。无论是系统管理、数据处理、任务自动化还是快速原型开发,Shell 脚本都是一种...【详细内容】
2023-11-07  Search: 脚本  点击:(290)  评论:(0)  加入收藏
Python脚本支持OC代码重构实践:模块调用关系分析
在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等。这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效...【详细内容】
2023-10-27  Search: 脚本  点击:(247)  评论:(0)  加入收藏
暴击联盟传世脚本怎么用 斩魔无双传世手游脚本下载攻略
哈喽大家好,游戏里我们每天都需要花费大量时间去挂机、刷材料、升级,时间上对上班族非常不友好,这时候我们就需要可以解放双手的脚本了,自动刷boss、自动做活动、自动挂机,减少不...【详细内容】
2023-10-17  Search: 脚本  点击:(54)  评论:(0)  加入收藏
帮你解决繁琐重复的工作任务 用Python自动化脚本
重复性的任务总是耗时且枯燥。想象一下一张一张地剪切100张照片,或者执行诸如获取API、纠正拼写和语法等任务,这些都需要大量时间。为什么不将它们自动化呢?在今天的文章中,将分...【详细内容】
2023-09-27  Search: 脚本  点击:(255)  评论:(0)  加入收藏
Shell编程:命令行与脚本编程的结合
在计算机领域,Shell 是一个命令行解释器,它允许用户与操作系统进行交互。通过Shell,用户可以输入命令并执行各种任务。此外,Shell 还可以用于编写脚本,实现自动化管理和提高工作...【详细内容】
2023-09-07  Search: 脚本  点击:(214)  评论:(0)  加入收藏
PowerShell系列之PowerShell通过脚本方式运行笔记
上一篇文章讲解了Powershell通过交互环境运行命令的相关知识,今天给大家介绍实际工作当中使用最频繁的方式——通过脚本运行,简单来说就是和咱们实际编写代码一样,先...【详细内容】
2023-08-28  Search: 脚本  点击:(288)  评论:(0)  加入收藏
Docker容器中的Postgresql备份脚本异常解决办法
本文基于K8S中Docker容器对postgres数据库进行备份的操作,编写好脚本后,手动执行脚本是正常的,但是crontab定时实行却报错,报错信息为kubectl command not found,提示没有找到kub...【详细内容】
2023-08-28  Search: 脚本  点击:(396)  评论:(0)  加入收藏
疯传全网网络10个运维巡检脚本以及使用小技巧
第1章 前言巡检脚本在网络运维中非常重要,近期客户想要一些简单的脚本实现自动化常规项的检查,本文主要介绍一些常见巡检脚本和使用方法。 第2章 脚本案例1. 网络连通性检查...【详细内容】
2023-08-23  Search: 脚本  点击:(314)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条