腳本實(shí)現(xiàn)SSL證書到期監(jiān)控示例
1)準(zhǔn)備工作
創(chuàng)建一個(gè)企業(yè)微信賬號(hào),并創(chuàng)建一個(gè)組,在組里面配置企業(yè)微信提供的機(jī)器人。將機(jī)器人提供的 WebHook 地址保存。
2)編寫腳本
[root@Nginx ~]# bash ssl-monitor.sh [root@Nginx ~]# cat ssl-monitor.sh #!/bin/bash # 定義網(wǎng)站域名和端口號(hào)信息 WebName="www.baidu.com" Port="443" # 通過(guò) Openssl 工具獲取到當(dāng)前證書的到期時(shí)間 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}') # 將證書的到期時(shí)間轉(zhuǎn)化成時(shí)間戳 Cert_NED_TimeStamp=$(date +%s -d "$Cert_END_Time") # 定義當(dāng)前時(shí)間的時(shí)間戳 Create_TimeStamp=$(date +%s) # 通過(guò)計(jì)算獲取到證書的剩余天數(shù) Rest_Time=$(expr $(expr $Cert_NED_TimeStamp - $Create_TimeStamp) / 86400) # 配置告警提示信息 echo "$WebName 網(wǎng)站的 SSL 證書還有 $Rest_Time 天后到期" > ssl-monitor.txt # 判斷出證書時(shí)間小于 30 天的 if [ $Rest_Time -lt 30 ];then # 定義企業(yè)微信機(jī)器人的 API 接口 WebHook='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=2743320b-0a2c-404b-87bc-25fedf1ff67a' # 通過(guò) Curl 命令來(lái)發(fā)送 Post 請(qǐng)求 curl "${WebHook}" -H 'Content-Type: application/json' -d ' { "msgtype": "text", "text": { "content": "'"$(cat ssl-monitor.txt)"'" } }' &> /dev/null fi
因?yàn)槲覀兩厦嬗信渲脳l件判斷,所以在驗(yàn)證的時(shí),我們可以先將條件判斷刪除。
3)手動(dòng)驗(yàn)證
[root@Nginx ~]# bash ssl-monitor.sh
4)配置到 CronJob 中
[root@Nginx ~]# crontab -e * 23 * * * /bin/bash /root/ssl-monitor.sh
到此這篇關(guān)于腳本實(shí)現(xiàn)SSL證書到期監(jiān)控示例的文章就介紹到這了,更多相關(guān)SSL證書到期監(jiān)控腳本內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。