证书过期检测
#!/bin/bash
# 定义要监控的域名列表
DOMAINS=("域名1" "域名2")
# 定义Webhook URL
WEBHOOK_URL="告警webhook地址"
# 循环遍历域名列表
for domain in "${DOMAINS[@]}"; do
echo "Checking certificate for $domain..."
# 使用 curl 命令获取证书过期日期
expiration_date=$(curl -vvI "https://$domain" 2>&1 | grep "expire date:" | awk '{print $4,$5,$7}')
# 将过期日期转换为时间戳
expiration_timestamp=$(date -d "$expiration_date" +%s)
# 获取当前时间戳
current_timestamp=$(date +%s)
# 计算剩余天数
remaining_days=$(( (expiration_timestamp - current_timestamp) / 86400 ))
# 检查剩余天数是否小于等于 30
if (( remaining_days <= 30 )); then
echo "Certificate for $domain will expire in $remaining_days days."
# 构建告警消息
message="Certificate for $domain will expire in $remaining_days days."
# 发送告警通知到Webhook
# curl -X POST -H "Content-Type: application/json" -d "{\"msg_type\":\"text\",\"content\":{\"text\":\"$message\"}}" "${WEBHOOK_URL}"
else
echo "Certificate for $domain is valid for $remaining_days days."
fi
echo
done