互联网安全越来越受到企业重视,https证书也成为各个公司必备,但是域名过多、系统复杂、证书不一致、过期给证书安装、替换增加了很大的困难,基于此,本文编写了证书检测程序,进行常态化监控证书情况

操作环境:python2.7

依赖包:ssl, socket

这里是关于证书的一个最新消息:

从2020年9月1日起,苹果系统、谷歌和火狐浏览器计划调整受信SSL证书的有效期策略,上述系统或浏览器中受信SSL证书的最长有效期将从825天缩短至398天。对此,各CA厂商也将缩短SSL证书的最长有效期。

脚本分为两个文件,一个域名配置文件、一个检测程序,

配置文件domain.txt,域名写入该配置文件,每行一个域名

www.xxx.com
123.xxx.com
1231.xxx.com
123.xxx.com

代码

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import ssl, socket
import json
import time
import datetimesocket.setdefaulttimeout(5)
def check_ssl(domain):try:hostname = domainc = ssl.create_default_context()s = c.wrap_socket(socket.socket(), server_hostname=hostname)s.connect((hostname, 443))cert = s.getpeercert()now_time = (datetime.datetime.now()+datetime.timedelta(days=3)).strftime("%b %d %H:%M:%S %Y GMT")now_times = time.mktime(time.strptime(now_time, "%b %d %H:%M:%S %Y GMT"))real_time=time.mktime(time.strptime(cert['notAfter'], "%b %d %H:%M:%S %Y GMT"))#比较证书是否过期if now_times < real_time:print "证书未过期"else:print "证书已过期,过期时间:"+cert['notAfter']#比较证书时间print cert['notAfter']+"--->"+hostname#假设Jul 01 12:00:00 2020 GMT到期if "Jul 01 12:00:00 2020 GMT" != cert['notAfter']:print "证书与预估时间不一致--->" + hostname +"<------"+ cert['notAfter']except Exception,err:print "Exception-->\n"+hostname+str(err)
if __name__ == '__main__':with open("/home/domain.txt", "r") as f:for line in f.readlines():line = line.strip('\n')check_ssl(line)

python之域名证书检测相关推荐

  1. python 批量域名证书过期查找(二),从阿里云导出后的文件夹中的excel查找

    python 读取文件夹中 从阿里云导出后的域名excel 判断域名 ssl 过期 import os import ssl import socket import requestsfrom ope ...

  2. shell脚本检查域名证书是否过期

    最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...

  3. localhost使用ipv4_使用 blackbox exporter 实现域名证书过期监控

    个人网站我一般使用 [Let's Encrypt](https://letsencrypt.org/) 的免费 CA 证书,当网站一多管理这些证书就显得比较麻烦,所以我非常希望有一个工具,能够将这些域 ...

  4. 阿里云SLB负载均衡与使用SSL域名证书

    阿里云SLB负载均衡与使用SSL证书 1.购买两台ECS服务器,这就是后台服务器,在这两个服务器上面部署你的网站,注意网站的端口要一样:比如都是 88. 2.在阿里云控制台的菜单里找到 负载均衡,创建 ...

  5. acme + acme-dns + google domains 签发泛域名证书

    acme + acme-dns + (google domains 或 cloudflare) 签发泛域名证书 1. acme.sh # 下载 curl https://get.acme.sh | s ...

  6. 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书

    使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...

  7. Python 获取网站证书有效期

    Python获取网站证书有效期 Python获取网站证书有效期 python:OpenSSL和ssl python+shell:subprocess和curl Python获取网站证书有效期 由于某些 ...

  8. certbot泛域名证书申请

    前言 什么是Let's Encrypt? 目前世界上就只有为数不多的几家域名证书签发机构得到浏览器的认可,而Let's Encrypt 就是其中一家,并且你可以申请到免费的证书,当然你如果想要付费也行 ...

  9. oneinstack申请免费的R3 域名证书

    OneinStack 是知名 Linux 技术博客 LinuxEye 推出的一个可以一键安装 LNMP(Linux + NGINX + MySQL + PHP).LAMP(Linux + Apache ...

最新文章

  1. SharePoint判断页面(或WebPart)是否处于编辑模式.
  2. 如何委婉的表达你的心思?
  3. ETC2 区别于ETC的重要点
  4. Boost:bind绑定作为一个组合的测试程序
  5. An unspecified error occurred!
  6. [XSY] 树与图(树形DP、生成函数、分治NTT、重链剖分)
  7. 论文浅尝 | DSKReG:基于关系GNN的推荐知识图谱可微抽样
  8. 使用TDengine快速搭建运维监测系统
  9. 用Word2007查找和替换功能批量设置图片位置
  10. 尚硅谷为什么免费开放资源_什么是开放游戏? 新资源
  11. Websocket服务器响应包,服务器websocket c++发送二进制类型包,客户端没有任何事件响应...
  12. 无需积分PowerDesigner 下载
  13. go reflect详解
  14. Django基础(29): select_related和prefetch_related的用法与区别
  15. 人工智能识别手写数学公式
  16. pubwin修改服务器时间,如何解决控制台打开(Pubwin)提示服务器没有启动或者服务器IP地址改变问题...
  17. iOS印象笔记添加到Siri捷径,怎么实现的?
  18. matplotlib 绘制三角函数图像
  19. 漫画分销系统服务器配置,漫画分销系统
  20. 【小程序实现五星好评功能】

热门文章

  1. 安装Adobe Illustrator(AI) CC 2017 后弹出quot;无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dllquot;
  2. 【软件测试-实验-7】使用LR进行性能测试
  3. nginx负载均衡面试题
  4. Flink 报错:unable to generate a JAAS configuration file
  5. 关于while(t--)和while(--t)
  6. 大漠天使后台绑定测试工具
  7. 白嫖-免费商用字体-收集
  8. 目标跟踪:相关滤波算法MOSSE理解与python实现
  9. 关于VS2017中VB.NET打开重新打开工程后程序设计界面无法显示的问题
  10. Matlab的filtfilt函数解析与C++实现