概述
1.需求
nginx服务器中的域名,在跑的业务域名比较多,需要监控各个域名的证书到期时间,提前做好准备更换证书。
网上有很多的平台监控,但很多都是需要付费的,本次是使用telegram配合做监控提示。
2.nginx服务器上编辑脚本
vim check_ssl.sh
#!/bin/bash
#证书位置
ssl_folder='/opt/lucky/nginx/conf/keys/baidu/'
#设置定判定剩余时间
day=400
#主机名称
host=`hostname`
#tg群組跟机器人
chat_id='@123_gsds' #等号后面写你的ID,本次这里由于私密问题,是乱输入的
token='bot534543543:AAEaesatawetggfeawtsg223' #等号后面写你自己的token,本次这里由于私密问题,是乱输入的
#tg发送指令
send_tg(){
echo $1
curl -g "https://api.telegram.org/$token/sendMessage?text=$1&chat_id=$chat_id"
}
check_ssl (){
EXP_DAY=`openssl x509 -enddate -noout -in $file | grep "notAfter" | awk -F '=' '{print $2}'`
NOW_TIME=`date +%s`
EXP_TIME=`date +%s -d "${EXP_DAY}"`
if [ "${EXP_DAY}" != '' -a ${NOW_TIME} -lt ${EXP_TIME} ]; then
echo $(((EXP_TIME-NOW_TIME)/(60*60*24)))
else
echo "ERROR"
fi
}
for file in $(find $ssl_folder -name *.crt)
do
result=`check_ssl $file`
if [ "$result" == 'ERROR' ];then
# echo '----'
echo 'SSL 证书过期' $file
send_tg "$host 服务器的 $file SSL 证书过期"
else
if [ $result -lt $day ]; then
echo "$host 服务器的 $file 过期时间小于 $day 天, 剩 $result 天过期"
send_tg "$host 服务器的 $file 过期时间小于 $day 天, 剩 $result 天过期"
else
echo $result $file
fi
fi
done
脚本根据你的nginx路径,做一些改动,之后设置定时任务,定时运行这个脚本,即可。
3.验证
4.注意
群组频道类型要选择公开
最后
以上就是发嗲蜜粉为你收集整理的监控域名证书到期时间的全部内容,希望文章能够帮你解决监控域名证书到期时间所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复