监控:实现 SSL 证书到期,微信通知
优采云 发布时间: 2022-07-16 01:53监控:实现 SSL 证书到期,微信通知
点击上方“芋道源码”,选择“”
管她前浪,还是后浪?
能浪的浪,才是好浪!
每天 10:33更新文章,每天掉亿点点头发...
源码精品专栏
创建一个企业微信账号,并创建一个组,在组里面配置企业微信提供的机器人。将机器人提供的 WebHook 地址保存。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
[root@Nginx ~]# cat ssl-monitor.sh<br />#!/bin/bash<br /><br />> 基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能<br />><br />> * 项目地址:<br />> * 视频教程:<br /><br /># 定义网站域名和端口号信息<br />WebName="www.baidu.com"<br />Port="443"<br /><br /># 通过 Openssl 工具获取到当前证书的到期时间<br />Cert_END_Time=$(echo | openssl s_client -servername ${<br /> <br /> WebName} -connect ${<br /> <br /> WebName}:${<br /> <br /> Port} 2> /dev/null | openssl x509 -noout -dates | grep 'After' | awk -F '=' '{print $2}' | awk '{print $1,$2,$4}')<br /><br /># 将证书的到期时间转化成时间戳<br />Cert_NED_TimeStamp=$(date +%s -d "$Cert_END_Time")<br /><br /># 定义当前时间的时间戳<br />Create_TimeStamp=$(date +%s)<br /><br /># 通过计算获取到证书的剩余天数<br />Rest_Time=$(expr $(expr $Cert_NED_TimeStamp - $Create_TimeStamp) / 86400)<br /><br /># 配置告警提示信息<br />echo "$WebName 网站的 SSL 证书还有 $Rest_Time 天后到期" > ssl-monitor.txt<br /><br /># 判断出证书时间小于 30 天的<br />if [ $Rest_Time -lt 30 ];then<br /><br /># 定义企业微信机器人的 API 接口<br />WebHook='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=2743320b-0a2c-404b-87bc-25fedf1ff67a'<br /><br /># 通过 Curl 命令来发送 Post 请求<br />curl "${WebHook}" -H 'Content-Type: application/json' -d '<br />{<br /> "msgtype": "text",<br /> "text": { <br /> "content": "'"$(cat ssl-monitor.txt)"'"<br /> }<br />}' &> /dev/null<br />fi<br />
因为我们上面有配置条件判断,所以在验证时,我们可以先将条件判断删除。
[root@Nginx ~]# bash ssl-monitor.sh <br />
[root@Nginx ~]# crontab -e<br />* 23 * * * /bin/bash /root/ssl-monitor.sh<br />
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:
已在知识星球更新源码解析如下:
最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。
提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。