补充个python监控小函数,证书过期发送警告

Python爬虫SSL证书验证详解:从verify=False风险到安全实践 HTTPS作为HTTP的安全扩展,通过SSL/TLS协议为网络通信提供加密和身份验证,是保障数据在传输过程中机密性与完整性的基石。其核心原理依赖于数字证书和公钥基础设施(PKI),服务器需向可信的证书颁发机构(CA)申请证书,客户端通过验证证书链、域名匹配及有效期来确认服务器身份,从而建立安全信道。在Python爬虫开发中,requests库的`verify`参数控制着这一验证流程,而常见的`verify=False`用法虽能快速绕过SSL错误,却会完全关闭身份验证,使爬虫暴露于中间人攻击(MitM)和数据 阅读详情

背景

现网发生过几次证书过期发生的业务中断,老这样搞不太好,于是决定在原有监控脚本基础上增加监控项,提前指定时间发送短信给维护人员

问题

现有证书主要就是一些提供https连接用的,有keystore文件,有.crm文件,也有pem文件,所以获取到期时间的命令有所不同,如下:

Test:/home/xia/tomcat/conf # keytool -list -v -keystore key.store -storepass 'xxx' |grep CST 
Valid from: Fri Feb 21 08:00:00 CST 2014 until: Sun Feb 22 07:59:59 CST 2015
Valid from: Tue Aug 28 04:40:40 CST 2012 until: Sat May 21 04:40:40 CST 2022
Valid from: Sun Aug 23 00:41:51 CST 1998 until: Thu Aug 23 00:41:51 CST 2018

Test:/usr/local/apache2/conf # openssl x509 -enddate -noout -in caiyun.feixin.10086.cn.crt 
notAfter=Feb 21 23:59:59 2015 GMT


现网目前的监控是用python实现的,时间处理采用date.ctime()方法(主要是awk分割可读性貌似差了点),ctime获取的格式如下:

Fri Jun 06 17:31:56 2014

openssl获取的没有周(考虑到反正不用周几,就随机用Fri去填充),keytool或取的CST在中间(用awk分割,需要考虑语言不同的可移植性问题)

成品

        certification_dir = self.getStrFromConfigIni("CertificateFile",item_name,"/home/X/key.store")
        before_days = self.getIntFromConfigIni("BeforeDays",item_name,15)
        if self.com_name == "A" :
            store_pass = self.getStrFromConfigIni("StorePass",item_name,"123456")
            get_date_cmd = """keytool -list -v -keystore %s -storepass '%s' |grep CST | head -n 1 |awk -F "," '{print substr($1,49,20),substr($1,73,4)}'""" % (certification_dir,store_pass)
            status,expire_time = lib.getOrderResultByCommands('root',get_date_cmd)
        elif self.com_name == "B" :
            get_date_cmd = """openssl x509 -enddate -noout -in %s | awk -F "," '{print substr($1,10,20)}'""" % (certification_dir)
            #...
        
        now=time.ctime()
        parsed_expire=time.strptime(expire_time)
        
        expire_date=datetime.date(parsed_expire.tm_year,parsed_expire.tm_mon,parsed_expire.tm_mday)
        #...
        delta = expire_date-now_date
        #send alarm

说明

1.grep CST后会获取到多个,只取第一个则head -n 1,同理,末尾用tail;
2.都指定root用户执行,因为现网有的用户语言LANG=zh_CN.UTF-8;
3.这个配合自己产品,比如读取配置执行命令,自己的库,看的童鞋就不要参考了。

AI重构SSL/TLS证书管理:从智能监控到自动化诊断与修复 SSL/TLS证书作为保障网络通信安全的基础协议,其配置错误、过期失效等问题常导致服务中断。传统人工排查依赖经验,效率低下且易出错。通过引入AI技术,可构建智能运维体系:利用时间序列异常检测算法监控证书有效期、握手成功率等关键指标,实现从被动响应到主动预警;结合知识图谱与LLM大语言模型,对证书验证失败等复杂问题进行多维度根因分析,快速定位问题源头;最终与自动化运维平台集成,实现证书自动续期、配置修复等操作。这种AI驱动的解决方案,尤其适用于微服务架构和云原生环境,能显著提升系统稳定性与运维效率,将工程师从 阅读详情

相关推荐

Python httpx证书配置全解析:从TLS原理到实战排查

HTTPS作为保障网络通信安全的核心协议,其基础是TLS/SSL证书验证机制。该机制通过非对称加密建立安全通道,确保数据传输的机密性与完整性。在工程实践中,证书验证是HTTP客户端实现安全通信的关键环节,直接影响微服务调用、API集成等场景的可靠性。Python生态中的httpx库作为现代化HTTP客户端,其证书配置方式与默认行为对开发者提出了新的要求。特别是在处理自签名证书、私有CA等非标准环境时,正确的证书配置成为保障服务间通信顺畅的技术要点。本文聚焦httpx的证书验证原理与配置实践,涵盖容器化部署、

A458545418的博客 498

python的证书_用 python 编写简单的证书域名到期报警脚本

将脚本放在服务器的计划任务内,定时检测,证书到期不足60天发送报警邮件及钉钉提醒。在服务器上需要提前安装好 requests 库。 pip install requests钉钉机器人脚本#!/usr/bin/env python# -*- coding: utf-8 -*-from datetime import datetimefrom email.mime.text import MIMET...

weixin_39591386的博客 296

视频监控国密算法实战:从SM2证书生成到SM4流加密

在网络安全领域,密码学是构建可信通信的基石,其核心原理在于通过加密算法和密钥管理来保障数据的机密性、完整性与身份真实性。国密算法作为我国自主可控的密码技术标准,在关键信息基础设施保护中具有重要价值。SM2作为基于椭圆曲线的非对称算法,能高效实现数字签名和密钥协商,为身份认证提供技术支撑;SM4作为对称分组密码,则负责对海量业务数据进行高速加密。结合公钥基础设施(PKI)体系,SM2证书成为设备与平台间建立双向信任的关键载体。在视频监控这一典型应用场景中,通过SM2完成设备身份认证与密钥协商,再利用协商出的会

weixin_34284188的博客 419

自动检测ssl证书过期并自动通知脚本

使用简单的脚本实现定时自动检测ssl证书是否准备过期

zjw710的专栏 1015

SAP STRUST SSL/TLS证书管理:从X.509原理到运维实战全解析

SSL/TLS证书是保障网络通信安全的核心机制,基于X.509标准构建了数字世界的信任体系。其原理涉及非对称加密、证书链验证和公钥基础设施(PKI),通过CA机构对实体身份进行背书。在SAP生态中,STRUST事务码作为信任关系管理器,是实现HTTPS通信、Fiori访问及系统间集成安全的技术基石。正确配置与管理证书能有效防范中间人攻击、确保数据加密传输,对于SAP Basis运维与安全架构至关重要。本文聚焦STRUST的深层原理与工程实践,详解证书生命周期管理、PSE文件操作及典型故障排查,涵盖Fiori

weixin_33736048的博客 425

SSL证书自动化管理:从Let‘s Encrypt到Vault的ALLinSSL实践

SSL/TLS证书是保障网络通信安全的基础技术,它通过非对称加密和数字签名实现身份认证与数据加密。其核心原理涉及公钥基础设施(PKI),由受信任的证书颁发机构(CA)签发。在云原生和微服务架构下,证书数量激增,手动管理面临续期繁琐、部署易错、缺乏可视化等挑战。自动化证书管理平台应运而生,通过集中化仓库、自动化引擎和工作流策略,实现对证书全生命周期的统一管控。这类方案尤其适用于混合云、多云环境以及追求运维自动化的团队,能够有效解决证书蔓延问题,提升安全性与运维效率。本文以Let's Encrypt、Hashi

weixin_30512089的博客 437

Openssl+Python脚本获得本地证书的到期日期

Openssl+Python脚本获得本地证书的到期日期 from datakit_framework import DataKitFramework import psutil import re import os import time from datetime import datetime class ReadCertAndReport(DataKitFramework): __name = 'ReadCertAndReport' interval = 3600 # trigg

weixin_46449024的博客 1582

SSL证书伪造原理与防御:从信任链到mitmproxy实战

SSL/TLS证书是网络安全通信的基石,通过公钥加密和数字签名技术建立可信连接。其核心原理在于证书信任链验证——客户端通过验证证书签名,追溯至受信任的根证书颁发机构(CA)。这一机制确保了通信双方的身份真实性和数据完整性。在安全测试领域,理解证书验证原理有助于发现中间人攻击风险,例如攻击者通过伪造证书实施流量拦截。mitmproxy作为开源中间人代理工具,常被用于演示此类攻击原理,通过动态生成证书实现HTTPS流量解密。在实际应用中,企业需结合证书钉扎、HSTS等技术加固防御,而安全测试人员则可在授权环境下

weixin_34372728的博客 406

Python:获取域名ssl证书信息和到期时间

【代码】Python:获取ssl证书信息和到期时间。

彭世瑜的博客 8370

HTTPS证书问题排查全攻略:从原理到实战解决常见错误

HTTPS作为保障网络通信安全的核心协议,其基础是TLS/SSL协议,通过非对称加密和数字证书实现身份认证与数据加密。其工作原理涉及客户端与服务器间的握手协商,包括交换随机数、协商密码套件、验证证书链等关键步骤。这项技术的核心价值在于确保数据传输的机密性、完整性和身份真实性,是构建可信互联网的基石,广泛应用于电子商务、在线支付、API通信和隐私保护等场景。在工程实践中,证书链不完整、私钥不匹配、系统时间偏差等配置问题常导致握手失败,引发“SSL handshake failed”或“certificate

cunfuteng7334的博客 470

基于ACME协议与acme.sh实现SSL证书自动化管理实践

SSL/TLS证书是保障网站HTTPS加密通信的基础,其核心原理是通过非对称加密实现身份认证与数据传输安全。自动化证书管理技术通过ACME协议与证书颁发机构交互,解决了手动续期易出错、易过期的运维痛点,显著提升了服务可靠性。在工程实践中,结合DNS验证方式与Shell脚本自动化,可以构建零依赖、高可用的证书生命周期管理流水线。本文以Let's Encrypt免费证书为例,详细解析了如何使用acme.sh工具链,通过DNS-01验证方式实现泛域名证书的自动申请、部署与Nginx服务重载,并提供了生产环境集群分

weixin_30263277的博客 411

(随手记)python 获取https-证书过期时间

from urllib3.contrib import pyopenssl def get_expire(https_url): try: conn = pyopenssl.ssl.create_connection((https_url, 443)) sock = pyopenssl.ssl.SSLContext(pyopenssl.ssl.PROTOCOL_SSLv23).wrap_socket(conn, server_hostname=https_url)

ordinary_mood的博客 961

python2 监控ssl 证书过期邮件提醒

python2 监控ssl 证书即将到期邮件提醒,python 版本 python2.7 , 支持邮件提醒,有问题1044987171@qq.com

TLS握手与证书过期预警:从原理到自动化运维实战

TLS/SSL协议是保障网络通信安全的基石,其核心在于通过非对称加密、对称加密和哈希算法构建可信的加密通道。TLS握手过程通过交换随机数、协商密码套件和验证数字证书,实现身份认证与密钥协商,确保数据传输的机密性、完整性和真实性。在工程实践中,证书作为身份凭证,其有效期管理至关重要。证书过期将直接导致TLS握手失败,引发服务中断,因此建立有效的证书生命周期监控与预警机制具有极高的技术价值。本文聚焦TLS握手原理与证书过期预警,通过解析证书链验证、密钥交换等核心环节,并结合自动化续期与高可用部署方案,为构建健壮

weixin_30394981的博客 297

基于python检查SSL证书到期情况代码实例

结合邮件告警和页面展示,再多的域名证书到期情况即可立马知道 代码示例: # coding: utf-8 # 查询域名证书到期情况 import re import time import subprocess from datetime import datetime from io import StringIO def main(domain): f = StringIO() comm = fcurl -Ivs https://{domain} --connect-timeout 10 result = subprocess.getstatusoutput(comm)

Jetson Nano摄像头选型与配置全攻略:CSI与USB接口实战指南

在嵌入式视觉与边缘计算项目中,摄像头作为核心传感器,其选型与配置直接影响系统性能。CSI(Camera Serial Interface)和USB(Universal Serial Bus)是两种主流接口,前者通过MIPI CSI-2协议直接与SoC通信,具备低延迟、高带宽特性,适合实时性要求高的应用;后者基于通用串行总线标准,即插即用,通用性强。在NVIDIA Jetson Nano平台上,合理选择摄像头接口并优化驱动配置,能充分发挥其GPU加速优势,提升图像处理流水线效率。本文聚焦Jetson Nano

weixin_29190651的博客 323

Python实现SSL/TLS证书快速验证工具:5分钟定位HTTPS连接问题

SSL/TLS协议是保障网络通信安全的基石,它通过加密和身份验证机制,确保数据在传输过程中的机密性与完整性。其核心原理基于非对称加密、数字证书和握手协议,为HTTP、API等应用层协议提供安全通道。在工程实践中,SSL/TLS配置错误是导致服务连接失败的常见原因,尤其在微服务架构和云原生环境中,证书链不完整、域名不匹配或协议版本过时等问题频发。针对开发运维人员快速排查线上HTTPS连接故障的需求,本文介绍一个基于Python的轻量级诊断工具。该工具封装了底层复杂的证书解析与协议探测逻辑,能够自动化执行证书链

weixin_34185512的博客 397

从想法到零件:手把手拆解一个汽车功能如何从PRD写到SSTS和CTS

本文详细拆解了汽车电子需求从市场文档(MRD)到零部件技术规范(CTS)的完整流程,以雨天自动关窗功能为例,展示了PRD、SSTS和CTS的编写要点与交互设计。文章重点解析了系统分解的艺术和零部件落地的精确参数要求,为汽车电子工程师提供了从概念到实现的全流程实践指南。

weixin_30300225的博客 480

SSL证书验证失败排查与解决方案全解析

SSL/TLS证书是保障网络通信安全的核心机制,其工作原理基于公钥基础设施(PKI)构建的信任链体系。客户端通过验证服务器证书的签名链,追溯至可信的根证书颁发机构(CA),从而确认服务器身份的真实性。这一机制在HTTPS、API调用、Git操作等场景中至关重要,能有效防止中间人攻击和数据窃取。当出现“Unable to verify the first certificate”错误时,通常意味着信任链验证在第一步中断,常见于证书链不完整或自签名证书场景。本文将从诊断工具使用、服务器配置优化到客户端证书管理,

weixin_30552811的博客 337

电芯外观及体系设计(Cell Design)-①容量平衡设计(Cell Balance Design)

全面获取并正确解读客户需求,将需求进行分解和预判,结合公司现有资源、技术,给出设计方案。一个优秀的电芯设计方案,应该是稳健的,可操作的,满足客户需求的同时,并能为公司带来较多利润。电芯设计需同时考虑周期,性能,品质,加工性,成本,及安全与稳健性。设计人员时刻要有成本控制观念,但利润则是由公司战略所决定。

FDC1303864002的博客 1350

Cygwin安装教程

简介 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件 Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统 简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现 这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在W...

Errol's Blog 13万+
上一篇: awk来调用linux命令解决个日志采集问题
下一篇: 使用htmlparser下载网页中链接的所有文件
coder_xia
博客等级 码龄17年 151粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值