https证书过期检查

证书过期检测


#!/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