自动检测ssl证书过期并自动通知脚本

        目前大部分免费的SSL证书有效期都是3个月,如果管理的域名比较多,可能有时候会遗漏更新导致证书过期问题。本文使用简单的脚本实现多域名自动检测,并自动推送到企微消息

shell脚本如下:

#!/bin/bash
domainNames=("baidu.com" "weibo.com")
minLimit=30  #剩余多少天报警
wxWorkKey="xxxxxx" #企微机器人key
PORT=443       #端口
# 设置要检查的域名和端口
for DOMAIN in "${domainNames[@]}"
do
  # 获取SSL证书信息
  CERT_INFO=$(openssl s_client -connect ${DOMAIN}:${PORT} -servername ${DOMAIN} -showcerts </dev/null 2>/dev/null | openssl x509 -dates -noout)
  
  # 提取证书过期日期信息
  START_DATE=$(echo "${CERT_INFO}" | grep "notBefore" | cut -d'=' -f 2)
  END_DATE=$(echo "${CERT_INFO}" | grep "notAfter" | cut -d'=' -f 2)
  
  # 将日期转换为Unix时间戳
  START_TIMESTAMP=$(date -d "${START_DATE}" +%s)
  END_TIMESTAMP=$(date -d "${END_DATE}" +%s)
  CURRENT_TIMESTAMP=$(date +%s)
  
  # 计算剩余天数
  DAYS_REMAINING=$(( (${END_TIMESTAMP} - ${CURRENT_TIMESTAMP}) / 86400 ))
  
  # 输出结果
  echo " 域名: ${DOMAIN}"
  echo " - ssl证书开始日期: ${START_DATE},过期日期: ${END_DATE}"
  echo " - 剩余天数: ${DAYS_REMAINING} 天"
  
  # 检查是否过期
  if [ ${DAYS_REMAINING} -lt $minLimit ]; then
    #如果过期,发送通知到企微机器人
    curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='${wxWorkKey} \
     -H 'Content-Type: application/json; charset=UTF-8' \
     -d '
     {
          "msgtype": "text",
          "text": {
              "content": "ssl检测:'${DOMAIN}'剩余过期时间'${DAYS_REMAINING}'天"
          }
     }'
  fi
done

测试效果以及企微机器人Key获取方式如下:

定时执行脚本

可以使用cron来定期执行脚本,实现自动通知功能,由于比较简单,请自行百度

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值