使用python检查SSL证书到期情况

使用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 = f"curl -Ivs https://{domain} --connect-timeout 10"

    result = subprocess.getstatusoutput(comm)
    f.write(result[1])

    m = re.search(‘start date: (.*?)\n.*?expire date: (.*?)\n.*?common name: (.*?)\n.*?issuer: CN=(.*?)\n‘, f.getvalue(), re.S)
    start_date = m.group(1)
    expire_date = m.group(2)
    common_name = m.group(3)
    issuer = m.group(4)

    # time 字符串转时间数组
    start_date = time.strptime(start_date, "%b %d %H:%M:%S %Y GMT")
    start_date_st = time.strftime("%Y-%m-%d %H:%M:%S", start_date)
    # datetime 字符串转时间数组
    expire_date = datetime.strptime(expire_date, "%b %d %H:%M:%S %Y GMT")
    expire_date_st = datetime.strftime(expire_date,"%Y-%m-%d %H:%M:%S")

    # 剩余天数
    remaining = (expire_date-datetime.now()).days

    print (‘域名:‘, domain)
    print (‘通用名:‘, common_name)
    print (‘开始时间:‘, start_date_st)
    print (‘到期时间:‘, expire_date_st)
    print (f‘剩余时间: {remaining}天‘)
    print (‘颁发机构:‘, issuer)
    print (‘*‘*30)

    time.sleep(0.5)

if __name__ == "__main__":
    domains = [‘www.baidu.com‘]
    for domain in domains:
        main(domain)

结果示例:

域名: www.baidu.com
通用名: baidu.com
开始时间: 2019-05-09 01:22:02
到期时间: 2020-06-25 05:31:02
剩余时间: 82天
颁发机构: GlobalSign Organization Validation CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
******************************

原文地址:https://www.cnblogs.com/ZKPython/p/12627100.html

时间: 2024-11-06 19:18:50

使用python检查SSL证书到期情况的相关文章

zabbix监控ssl证书到期时间

公司因有一个域名过期导致线上业务受到影响,因此老大要求把公司所有的证书纳入到zabbix监控中!下面贴出配置过程,供大家参考!不足支持欢迎指教监控脚本 cat ssl_check.sh #!/bin/bash #20181219 #获取ssl证书的过期时间 #menghao #获取证书的有效时间 time=$(echo | openssl s_client -connect $1:443 2>/dev/null | openssl x509 -noout -dates |awk -F'=' 'N

python requests SSL证书问题

错误信息如下: requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",) python做爬虫,对于有的网站,需要验证证书,比如:12306,https://inv-veri.chinatax.gov.cn/等网站 那么我参考这个作者的简书:http://www.jia

解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)

1. 现象 放假期间收到zabbix报警,提示主站访问不了,报502. 2.排查思路及过程 因为是过年休息,放假前又没有更新,基本可以排除是更新和配置导致的问题.ssh连上服务器发现服务器连接和资源都没问题.这是一套lnamp架构的网站,就是nginx反向代理到Apache,所以考虑是Apache的问题,于是重启httpd服务. 重启httpd服务的时候启动失败,没有看到错误,所以去查看日志文件,看到如下报错: tail -200 /var/log/httpd/error_log [TIME 2

购买SSL证书必须考虑的五大因素

什么是SSL? 安全套接字层(SSL)及其继任者传输层安全(TLS)是为网络通信提供安全及数据完整性的一种安全协议,为互联网提供最流行的安全方法.SSL协议主要用于WEB浏览器和网站服务器之间在线共享敏感信息作为互联网的屏蔽层,保护网站所有者以及用户的信息. SSL协议一般由SSL证书承载,所以要部署SSL协议必须向权威的证书颁发机构(简称CA机构)申请SSL证书.SSL证书有多种类型,应该申请哪一种类型的SSL证书?申请者必须结合本身的需求认真分析哪一种类型的SSL证书适用于网站.并且,不同类

安信SSL证书618年中优惠活动五折起

又是一年一度的618狂欢节,安信SSL证书为给所有网站安全保驾护航,特此推出618年中优惠活动,SSL证书买一年送一年,用一年的价格买两年的证书! 安信SSL证书618年中优惠详情如下: 1.SSL证书买一年送一年:用一年的价格买两年的证书! 2.购买高级证书免费提供申请邓白氏服务. 更多SSL证书优惠情况可联系安信证书在线客服! 网站安装SSL证书的好处: 好处一.提升企业网站排名目前Google.百度等主流搜索引擎表示会优先收录以HTTPS开头的网站,并赋予网站高权重,有效提高网站关键词的排

python requests 高级用法 -- 包括SSL 证书错误的解决方案

Session Objects会话对象 Session对象在请求时允许你坚持一定的参数.此外,还坚持由Session实例的所有请求的cookie. 让我们坚持在请求时使用 s = requests.Session() s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') r = s.get("http://httpbin.org/cookies") print r.text # '{"cookies&q

python爬虫(3)——SSL证书与Handler处理器

一.SSL证书问题 上一篇文章,我们创建了一个小爬虫,下载了上海链家房产的几个网页.实际上我们在使用urllib联网的过程中,会遇到证书访问受限的问题. 处理HTTPS请求SSL证书验证,如果SSL证书验证不通过,会警告用户证书不受信任(即没有通过AC认证). 上图左边我们可以看到SSL验证失败,所以以后遇到这些网站我们需要单独处理SSL证书,让程序主动忽略SSL证书验证错误,即可正常访问.例如我们访问12306. 1 from urllib import request 2 #导入python

添加自签发的 SSL 证书为受信任的根证书

通过 SSL 加密的 HTTPS 连接访问网站时,需要安装并配置一个受信任的 CA 根证书(Trusted CA Root Certificate).平常访问一些加密网站之所以不需要自己安装证书,是因为系统或浏览器已经提前安装了一些受信任机构颁发的证书.但有些时候访问一些组织或个人自己签发证书的网站的时候,就会收到浏览器发出的警告.此时可以将该证书添加到“受信任的根证书颁发机构”存储区,然后就不会再收到安全提示了. 快捷阅读目录 前言 从Windows 自带的浏览器 Internet Explo

StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全

StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全 一.StartSSL个人证书登录申请 1.StartSSL官网: 1.官方首页:http://www.startssl.com/ 2.控制面板:http://www.startssl.com/?app=12 2.第一次用StartSSL,先进入控制面板,先点击注册. 3.然后是填写你的个人基本信息,以部落的经验,主要地址填写详细,StartSSL会根据你的IP自动填入你所在的地址. 4.提交后你的邮箱会收到一个验证码. 5.用这