基于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
******************************
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python smtplib模块发送SSL/TLS安全邮件实例
python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. smtp协议的基本命令包括: HELO 向服务器标识用户身份 MAIL 初始化邮件传输 mail from: RCPT 标识单个的邮件接收人:常在MAIL命令后面,可有多个rcpt to: DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束 VRFY 用于验证指定的用户/邮箱是否存在:由于安全方面的原因,服务器常禁止此命令 EXPN 验证给定的邮箱列表是否
-
python加密解密库cryptography使用openSSL生成的密匙加密解密
密匙使用步骤一般是: 1. 私匙签名,发送签名后的数据, 公匙验证. 2.公匙加密,发送加密后的数据,私匙解密. 一般使用情景是通过 openssl 生成密匙后再操作的.Linux下生成密匙也很简单. yum 安装 openssl yum -y install openssl 生成三个密匙文件. rsa_private_key.pem 私匙文件 rsa_private_key_pkcs8.pem pkcs8格式私匙, rsa_public_key.pem 公匙 openssl
-
centos6.8安装python3.7无法import _ssl的解决方法
公司运维提供的服务器是centos6.8,打算在上面装python3.7,结果费尽周折,按照网上的步骤python3.7能成功安装,但是import ssl却报找不到_ssl模块的错误: import _ssl # if we can't import it, let the error propagate ImportError: No module named _ssl 在网上搜了各种方法,有说修改python3.7安装文件中的Setup.dist,将SSL部分注释掉,但自己注释掉仍然不行.
-
解决Python找不到ssl模块问题 No module named _ssl的方法
python安装完毕后,提示找不到ssl模块: [www@pythontab.com ~]$ python Python 2.7.15 (default, Oct 23 2018, 18:08:43) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2 Type "help", "copyright", "credits" or "license" for more inform
-
Python SSL证书验证问题解决方案
这篇文章主要介绍了Python SSL证书验证问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.SSL问题 1.在你不启用fiddler时,python代码直接发送https请求,不会有SSL问题(也就是说不想看到SSL问题,关掉fiddler就行) 2.启用fiddler会报出以下错误: raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSC
-
python3中pip3安装出错,找不到SSL的解决方式
最近在Ubuntu16.04上安装Python3.6之后,使用pip命令出现了问题,提示说找不到ssl模块,出现错误如下: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https:*******: There was a problem confirming the ssl certific
-
一个检测OpenSSL心脏出血漏洞的Python脚本分享
什么是SSL? SSL是一种流行的加密技术,可以保护用户通过互联网传输的隐私信息.网站采用此加密技术后,第三方无法读取你与该网站之间的任何通讯信息.在后台,通过SSL加密的数据只有接收者才能解密. SSL最早在1994年由网景推出,1990年代以来已经被所有主流浏览器采纳. 什么是"心脏出血"漏洞? SSL标准包含一个心跳选项,允许SSL连接一端的电脑发出一条简短的信息,确认另一端的电脑仍然在线,并获取反馈.研究人员发现,可以通过巧妙的手段发出恶意心跳信息,欺骗另一端的电脑泄露机密信息
-
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
简述 从官网下载了Python3.7.4,直接编译安装后,使用pip3出现了报错信息: Can't connect to HTTPS URL because the SSL module is not available 错误原因 在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl. image.png 而本地的openssl依然是1.0.1e的. [root@localhost ~]# openssl ver
-
基于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&q
-
基于Python批量生成指定尺寸缩略图代码实例
这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近我们商城上架的应用越来越丰富了.但在应用上传的过程中遇到这样的一个问题:每一个上架的应用需要配置一个应用封面图片,并且封面的图片大小有指定的范围:300*175.而 我们制作完的图片一般都会大于这个尺寸.所以每次手动调整大小,又让我产生了偷懒的想法,想法有了那就开始行动吧. 代码 import requests as req fr
-
基于python实现简单C/S模式代码实例
C/S模式就是指客bai户端/服务器模式,du是计算机软件协同工作的一种模式.zhi 由于Web浏览器的兴起,B/S模式逐步取代了daoC/S模式,被更广泛地应用.随着计算机网络技术的成熟和应用普及,特别是局域网的发展.PC机的出现,越来越多的用户和企业开始使用计算机管理一些事务. PC机的资源没有大型.中型甚至小型主机丰富,但将多台PC机联成网,必然会增加资源含量,各个用户都在网络上来共享所有资源.根据客户/服务器(Client/Server简记为C/S)体系结构的概念,至少用两台计算机来分别
-
基于python实现图片转字符画代码实例
直接上代码图片就使用我家爽妹子的吧 如果没有安装pil模块的话先cmd安装下 输入:pip install pillow # -*- coding: utf-8 -*- from PIL import Image codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. '''#生成字符画所需的字符集 count = len(codeLib) def transform1
-
python基于FTP实现文件传输相关功能代码实例
这篇文章主要介绍了python基于FTP实现文件传输相关功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本实例有文件传输相关功能,包括:文件校验.进度条打印.断点续传 客户端示例: import socket import json import os import hashlib CODE = { '1001':'重新上传文件' } def file_md5(file_path): obj = open(file_path,'rb
-
python基于plotly实现画饼状图代码实例
这篇文章主要介绍了python基于plotly实现画饼状图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码 import pandas as pd import numpy as np import plotly.plotly as py import plotly.graph_objs as go path = '/home/v-gazh/PycharmProjects/us_data/limit_code.csv' df = p
-
基于Python获取docx/doc文件内容代码解析
这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 整体思路: 下载文件并修改后缀为zip文件,解压zip文件,所要获取的内容在固定的文件夹下:work/temp/word/document.xml 所用包,全部是python自带,不需要额外下载安装. # encoding:utf-8 import os import re import requests import zipf
-
脚本实现SSL证书到期监控示例
目录 1)准备工作 2)编写脚本 3)手动验证 4)配置到 CronJob 中 1)准备工作 创建一个企业微信账号,并创建一个组,在组里面配置企业微信提供的机器人.将机器人提供的 WebHook 地址保存. 2)编写脚本 [root@Nginx ~]# bash ssl-monitor.sh [root@Nginx ~]# cat ssl-monitor.sh #!/bin/bash # 定义网站域名和端口号信息 WebName="www.baidu.com" Port="4
-
基于Python实现超级玛丽游戏的示例代码
目录 效果演示 基础源码 1.基础设置(tools部分) 2.设置背景音乐以及场景中的文字(setup部分) 3.设置游戏规则(load_screen) 4.设置游戏内菜单等(main_menu) 5.main() 6.调用以上函数实现 效果演示 基础源码 1.基础设置(tools部分) 这个部分设置马里奥以及游戏中蘑菇等怪的的移动设置. import os import pygame as pg keybinding = { 'action':pg.K_s, 'jump':pg.K_a, 'l
-
基于Python实现围棋游戏的示例代码
目录 1.导入模块 2.初始化棋盘 3. 开始游戏 4.放弃当前回合落子 5.悔棋判断 6.重新开始 7.右侧太极图的设置 8.落子设置 9.吃子规则判定设置 10.其他 11.程序入口 12.效果图 文件自取 1.导入模块 tkinter:ttk覆盖tkinter部分对象,ttk对tkinter进行了优化 copy:深拷贝时需要用到copy模块 tkinter.messagebox:围棋应用对象定义 如没有以上模块,在pycharm终端输入以下指令: pip install 相应模块 -i h
随机推荐
- Ruby实现插入排序算法及进阶的二路插入排序代码示例
- Extjs4中的分页应用结合前后台
- 前端分页功能的实现以及原理(jQuery)
- php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
- PHP基于yii框架实现生成ICO图标
- 利用Python绘制MySQL数据图实现数据可视化
- MySql的事务使用与示例详解
- 详谈PHP编码转换问题
- php中获取指定IP的物理地址的代码(正则表达式)
- JS基于FileSaver.js插件实现文件保存功能示例 原创
- 分享我学习js的过程 作者aircy javascript学习教程第1/3页
- 解决遍历时Array.indexOf产生的性能问题
- android adb实用命令小结
- java读取XML文件的四种方法总结(必看篇)
- javascript使用btoa和atob来进行Base64转码和解码
- C#设计模式之观察者模式实例讲解
- C语言中查找字符在字符串中出现的位置的方法
- Android studio 3.0安装配置方法图文教程
- SQL Server 2008 清空删除日志文件(瞬间缩小日志到几M)
- openstack使用openvswitch实现vxlan的方法