ssl证书到期监控脚本,通过企业微信提前一个月通知提醒

        以下是一个简单的SSL证书到期监控脚本,它可以检查指定域名的SSL证书是否将在一个月内到期,并通过企业微信应用程序发送通知。该脚本使用openssl命令检查证书到期日期,并使用curl命令发送企业微信应用程序消息。

        

在这个脚本中,您需要将以下变量替换为您自己的值:

  • domain:要监控的域名。
  • corp_id:企业微信应用程序的CorpID。
  • agent_id:企业微信应用程序的AgentID。
  • secret:企业微信应用程序的Secret。
  • user_id:接收通知消息的用户UserID。

该脚本使用openssl命令获取指定域名的SSL证书到期日期,并计算证书到期时间戳和一个月后的时间戳。如果证书将在一个月内到期,则使用curl命令发送企业微信应用程序消息。

#!/bin/bash

# 若是要一起监控多个域名,则可以使用for等循环便利域名

# 指定要监控的域名
domain="example.com" # 要监控的域名

# 指定企业微信应用程序的相关参数
corp_id="YOUR_CORP_ID" # 企业微信应用程序的CorpID
agent_id="YOUR_AGENT_ID" # 企业微信应用程序的AgentID
secret="YOUR_SECRET" # 企业微信应用程序的Secret
user_id="YOUR_USER_ID" # 接收通知消息的用户UserID

# 计算证书到期日期
expiry_date=$(echo | openssl s_client -servername $domain -connect $domain:443 2>/dev/null | openssl x509 -noout -dates | awk -F= '{print $2}' | sed 's/GMT//')

# 计算证书到期时间戳
expiry_timestamp=$(date -d "$expiry_date" +%s)

# 计算一个月后的时间戳
one_month_later=$(date -d "+1 month" +%s)

# 如果证书将在一个月内到期,则发送企业微信应用程序消息
if [ $expiry_timestamp -lt $one_month_later ]; then
    message="SSL证书将在一个月内到期:$expiry_date"
    curl "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$(curl https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corp_id\&corpsecret=$secret | jq -r '.access_token')" \
        -H "Content-Type: application/json" \
        -d "{\"touser\": \"$user_id\", \"agentid\": \"$agent_id\", \"msgtype\": \"text\", \"text\": {\"content\": \"$message\"}}"
fi

你可能感兴趣的:(ssl,企业微信,服务器)