哈喽大家好,我是咸鱼
我们知道 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
关键词:
相关的文章>>
热门搜索:
资讯
更多图说健康
更多疏风解毒胶囊的作用与功效是什么?疏风解毒胶囊可以起到解毒利咽...
艾叶的功效与作用有哪些?1、散寒止痛艾叶为菊科蒿属植物艾的叶...
治疗白发的偏方有哪些?1 桑白皮30克,五倍子15克,青葙子60...
紫癜性肾炎是什么病?所谓的紫癜性肾炎,就是由于患者对于某些东...
维生素ad是什么?维生素AD是指维生素A和D的混合制剂,是两种脂溶...
乙肝小三阳严重吗?乙肝小三阳有些比较严重,也有些不太严重的,...
常见疾病
更多体育健身
更多中国物流与采购联合会今天发布了2023年度中国物流企业50强。从...
今年以来,出现未成年人利用成年人账号(主要是家长)进行大额...
贵州全面推进数据要素市场化配置改革---新华社贵阳8月3日电(记...
1、Setfiretotherain超好听!!。相信通过阿黛尔好听的歌这篇文...
传送地下城作为一款4人联机的国产横版Roguelite的冒险闯关游戏...
欧陆通(300870)08月03日在投资者关系平台上答复了投资者关心的问题。