通过python代码对域名ssl证书进行监控

时间:2019-09-24
本文章向大家介绍通过python代码对域名ssl证书进行监控,主要包括通过python代码对域名ssl证书进行监控使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

根据公司要求,要求用zabbix对域名的ssl证书进行到期监控

直接上代码

 1 #!/usr/bin/env python3
 2 from urllib3.contrib import pyopenssl
 3 from datetime import datetime
 4 from sys import argv
 5 
 6 
 7 class SSL_Check:
 8     
 9     def __init__(self, url):
10         self.url = url
11     
12     @property
13     def get_str_time(self):
14         x509 = pyopenssl.OpenSSL.crypto.load_certificate(pyopenssl.OpenSSL.crypto.FILETYPE_PEM,
15                                                     pyopenssl.ssl.get_server_certificate((self.url, 443)))
16         return x509.get_notAfter().decode()[0:-1]
17     @property
18     def get_ssl_time(self):
19         ssl_time = datetime.strptime(self.get_str_time,'%Y%m%d%H%M%S')
20         return (ssl_time - datetime.now()).days
21 
22 
23 if __name__ == '__main__':
24     try:
25         url = argv[1]
26         ssl_chenk=SSL_Check(url)
27         print(ssl_chenk.get_ssl_time)
28     except Exception as e:
29         print('')

修改zabbix-agent的配置文件

1 vim  /etc/zabbix/zabbix_agentd.conf 
2 UserParameter=ssl_check[*],/etc/zabbix/script/ssl_check.py $1

登陆zabbix页面

配置-->主机-->监控项-->创建监控项

最后根据需求设置触发器证书还有多长时间报警提醒

原文地址:https://www.cnblogs.com/jiaosf/p/11577882.html