开源python脚本系列-批量查询ssl过期时间

本文涉及的产品
.cn 域名,1个 12个月
简介: 开源python脚本系列-批量查询ssl过期时间

640.png

波哥的全栈新项目pc端上线了:https://www.98dev.com有空个可以去看看,一个IT资源类导航,实时更新的哦~


脚本说明:    批量查询域名证书过期时间的脚本,这个需求应该是比较普遍的。DOMAIN_LIST用来填写域名列表,其他没什么需要特别说明的,这个是个python3的脚本脚本功能:
   

需要特别说明的是距离过期还剩这个是按照当前时间来计算,还剩多少天过期


import socket
import ssl
import datetime
# author 波哥(IT运维技术圈)
# 域名列表
DOMAIN_LIST = [
    "www.98dev.com",
    "www.baidu.com",
    "www.yahoo.com",
    "www.microsoft.com"
]
# 解析IP地址
def resolve_domain(domain):
    try:
        ips = socket.getaddrinfo(domain, None)
        return [ip[4][0] for ip in ips]
    except:
        return []
# 获取证书信息
def get_certificate_info(domain):
    context = ssl.create_default_context()
    with socket.create_connection((domain, 443)) as sock:
        with context.wrap_socket(sock, server_hostname=domain) as sslsock:
            cert = sslsock.getpeercert()
            subject = dict(x[0] for x in cert['subject'])
            issued_to = subject.get('commonName')
            issuer = dict(x[0] for x in cert['issuer'])
            issued_by = issuer.get('organizationName')
            valid_from = datetime.datetime.strptime(cert['notBefore'], '%b %d %H:%M:%S %Y %Z')
            valid_to = datetime.datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
            expire_days = (valid_to - datetime.datetime.utcnow()).days
            return (issued_to, valid_from, valid_to, expire_days, issued_by)
# 打印结果
def print_result(domain, info):
    print("="*50)
    print("Domain: {0}".format(domain))
    print("通用名: {0}".format(info[0]))
    print("生效日期: {0}".format(info[1]))
    print("到期日期: {0}".format(info[2]))
    print("距离过期还剩: {0} 天".format(info[3]))
    print("颁发机构: {0}".format(info[4]))
    ips = resolve_domain(domain)
    if ips:
        print("解析地址: {0}".format(", ".join(ips)))
    else:
        print("解析地址: N/A")
    print("="*50)
# 主程序
if __name__ == "__main__":
    for domain in DOMAIN_LIST:
        try:
            info = get_certificate_info(domain)
            print_result(domain, info)
        except:
            print("无法获取域名 {0} 的证书信息".format(domain))


执行效果如下:

640.png

别忘了给波哥一个三连!

相关文章
|
4天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
21 2
|
6天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
18 3
|
11天前
|
缓存 运维 NoSQL
python常见运维脚本_Python运维常用脚本
python常见运维脚本_Python运维常用脚本
16 3
|
11天前
|
数据采集 JSON 数据安全/隐私保护
Python常用脚本集锦
Python常用脚本集锦
14 2
|
12天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
10天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
533 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
16天前
|
算法 安全 数据建模
阿里云SSL证书限时优惠,WoSign DV证书220元/年起
2024年11月01日至11月30日,阿里云SSL证书限时优惠,部分证书产品新老同享75折起;阿里云用户通过完成个人或企业实名认证,还可领取不同额度的满减优惠券!通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起!
587 5
阿里云SSL证书限时优惠,WoSign DV证书220元/年起
|
24天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
2240 8
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
7天前
|
存储 安全 网络安全
SSL网络安全证书,守护您的数字世界
SSL证书的应用场景广泛,它是保护网络通信安全的重要手段。无论是个人用户还是企业组织,都应该认识到SSL证书的重要性,并采取适当的措施来部署和使用SSL证书,以保护自己的数据和隐私不受侵害。
|
14天前
|
算法 数据建模 网络安全
阿里云SSL证书2024双11优惠,WoSign DV证书220元/年起
2024阿里云11.11金秋云创季火热进行中,活动月期间(2024年11月01日至11月30日),阿里云SSL证书限时优惠,部分证书产品新老同享75折起;通过优惠折扣、叠加满减优惠券等多种方式,阿里云WoSign SSL证书将实现优惠价格新低,DV SSL证书220元/年起。
572 5

热门文章

最新文章