#!/bin/bash
# 定义网站域名和端口号信息
WebName="xxx.xxx.com"
Port="443"
# 通过 Openssl 工具获取到当前证书的到期时间
Cert_END_Time=$(echo | openssl s_client -servername ${WebName} -connect ${WebName}:${Port} 2> /dev/null | openssl x509 -noout -dates | grep 'After' | awk -F '=' '{print $2}' | awk '{print $1,$2,$4}')
# 将证书的到期时间转化成时间戳
Cert_NED_TimeStamp=$(date +%s -d "$Cert_END_Time")
# 定义当前时间的时间戳
Create_TimeStamp=$(date +%s)
# 通过计算获取到证书的剩余天数
Rest_Time=$(expr $(expr $Cert_NED_TimeStamp - $Create_TimeStamp) / 86400)
# 配置告警提示信息
echo "$WebName 网站的 SSL 证书还有 $Rest_Time 天后到期" > ssl-monitor.txt
# 定义钉钉机器人的 API 接口
WebHook='https://oapi.dingtalk.com/robot/send?access_token=根据自己的环境来定义'
# 通过 Curl 命令来发送 Post 请求
curl "${WebHook}" -H 'Content-Type: application/json' -d '
{
"msgtype": "text",
"text": {
"content": "上线通知'"$(cat ssl-monitor.txt)"'"
}
}' &> ssl_check.log
使用shell脚本来监控域名证书过期时间
于 2022-08-17 16:47:44 首次发布