ssl证书到期时间检查

本文介绍了一个Python脚本,用于检测HTTPS证书的到期时间,并在证书剩余天数少于预设值时通过rsyslog发送告警,可用于集成Zabbix或其他通知系统如钉钉或微信.
摘要由CSDN通过智能技术生成

检查ssl证书到期时间

  • 目前该脚本只是发送rsyslog日志,可以自行在修改结合zabbix或者自行发送到钉钉或者微信告警
#! /usr/bin/python
# -*- coding:utf-8 -*-
#此脚本用来获取https证书过期时间,发送网管告警
#需要先执行pip install pyopenssl

from urllib3.contrib import pyopenssl as reqs;
from datetime import datetime;
import os
 

#公网验证域名返回到期时间
def get_notafter(DomainName):
    cert = reqs.OpenSSL.crypto.load_certificate(reqs.OpenSSL.crypto.FILETYPE_PEM, reqs.ssl.get_server_certificate((DomainName, 443)));
 
    notafter = datetime.strptime(cert.get_notAfter().decode()[0:-1], '%Y%m%d%H%M%S');
    remain_days = notafter - datetime.now();
    #print(DomainName, '证书到期天数是:', remain_days.days);
    return remain_days.days
 

#判断到期时间发送网管告警
def IfDate(DomainName,DomainNameExpired,CheckTime):
   if int(DomainNameExpired) < CheckTime:
      GetDomainMsg = "https://" + DomainName +  " 证书还剩余到期天数是: "+ str(DomainNameExpired) +" days"  
      os.system("/bin/logger -p local0.crit \"ccod: result=ERROR "+  GetDomainMsg  + " \"") 
       
#主函数
def Main(DomainNameList,CheckTime):
    for DomainName  in DomainNameList:
        try:
            DomainNameExpired = get_notafter(DomainName);
        except Exception as e:
            ErrorMsg = "请检查 https://"+ DomainName +" 域名是否正确或者网络可达性"
            print(ErrorMsg)

        IfDate(DomainName,DomainNameExpired,CheckTime)

 
if __name__ == "__main__":
   #设置要检查的域名列表
   DomainNameList = ["baidu.com","jd.com"]
   #设定检查域名到期告警时间
   CheckTime = 40
   #运行主函数
   Main(DomainNameList,CheckTime)

本文由mdnice多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的运维之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值