Python 获取网站证书有效期
Python获取网站证书有效期
- Python获取网站证书有效期
- python:OpenSSL和ssl
- python+shell:subprocess和curl
Python获取网站证书有效期
由于某些原因,需要验证网站证书有效期,从而做出响应的措施来避免一些特殊情况的出现。
python:OpenSSL和ssl
首先考虑使用OpenSSL模块和ssl模块来完成需求,使用OpenSSL之前需要先安装模块-pyOpenSSL。
pip install pyopenssl
import OpenSSL
import ssldef check_cert_valid():# 这里还有一些代码,用来获取域名列表,情况不同,不阐述了for domain in domain_list: # 这里是一些域名的列表,可以使用其他方式# 这里我直接使用了下述方法来获取证书,并没有将证书写入文件cert = ssl.get_server_certification((domain, 443)) # 一般是443端口,并且这里默认返回# 的是PEM证书# 如果有cert文件的话,直接执行这里# cert_file_path = '' # cert证书文件路径# cert = open(cert_file_path).read() # 当然这里也可以使用with来进行上下文管理 certification = OpenSSL.crypto.load_certification(OpenSSL.crypto.FILETYPE_PEN, cert)valid_start_time = certification.get_notBefore() # 有效期起始时间valid_end_time = certification.get_notAfter() # 有效期结束时间pass # 接下来执行各自的操作即可if __name__ == '__main':check_cert_valid()
python+shell:subprocess和curl
在使用上述方法的时候,大部分域名都是正常的,但是部分域名的有效期不匹配,不清楚原因为何,如果有大佬知道原因,烦请不吝赐教,感谢,之后又尝试了这种方案。
首先需要安装subprocess模块
pip install subprocess
import subprocessdef check_cert_valid():# 这里还有一些代码,用来获取域名列表,情况不同,不阐述了for domain in domain_list: # 这里是一些域名的列表,可以使用其他方式# curl命令,-k代表不使用认证到达ssl站点,-v显示详情,-s代表静默,-o代表输出curl_cmd = "curl https://%s -k -v -s -o /dev/null" % domain[0]return_code, output = subprocess.getstatusoutput(domain_str)output_groups = re.search('SSL connection using (.*?)\n.*?start date: (.*?)\n.*?expire date: (.*?)\n.*?issuer: (.*?)\n.*?',output, re.S)if output_groups:# 接下来的时间是字符串,可能不符合各位的预期,使用时间格式化来回处理一下即可start_date = output_groups.groups()[1] # 有效期起始时间expire_date = output_groups.groups()[2] # 有效期结束时间passpass # 接下来执行各自的操作即可if __name__ == '__main':check_cert_valid()
但是在这里操作的时候,遇见了乱码的问题,也就是WWW-Authenticate: Basic realm="*******"
,这里出现了乱码,使用grep -v
命令也失败,只能退出求其次,将内容先写入文件,之后再重新读文件,这里走了弯路了,大佬有解决方法的话也忘不吝赐教,感谢,下面跳出来后来的命令。
curl_cmd = "curl https://%s -k -v -s -o /dev/null 2>/tmp/cert.txt;" \"cat /tmp/cert.txt| grep -v 'WWW-Authenticate'" % domain[0]
Python 获取网站证书有效期相关推荐
- python获取网站window全局对象或方法的返回值
本章教程,主要介绍如何使用python获取网站中的window全局对象或方法的返回值. 目录 1.浏览器运行结果 2.程序代码 3.程序运行结果 1.浏览器运行结果 2.程序代码 #!/usr/bin ...
- 使用 acme.sh 获取网站证书并配置https访问
目录 1. 安装 acme.sh 2. 生成证书 1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 普通用户和 root 用户都可以安装 ...
- python获取网站代码_python爬虫1——获取网站源代码(豆瓣图书top250信息)
# -*- coding: utf-8 -*- import requests import re import sys reload(sys) sys.setdefaultencoding('utf ...
- 获取网站证书最简单的方法
二.一种最简单的方法(作者认为),通过火狐浏览器 (firefox )直接导出. 后经测试,IE浏览器也可以获取网站的证书,方法类似,但似乎有些不稳定,不适用于所有网站 ,例如 Bing 的搜索主页, ...
- 【信息收集】用python获取网站权重(四)
文章目录 前言 一.代码 二.返回结果 三.实现方法 1.获取到个人私钥 2.接入API 3.请求参数说明 4.返回参数说明 5.返回json示例 总结 前言 本文实现利用python代码调aizha ...
- 【python】python获取网站源码失败,出现一堆script脚本内容
问题原因 网站开启了防爬虫,爬取的设置,通过头部的cookie和User-Agent判断 解决流程 在头部设置以下内容 def ask_url(url,method):proxies = {" ...
- python获取网站图片_python获取网站图片
# zhouxianglh 2013.05.03 python3.3 import urllib.request from html.parser import HTMLParser import r ...
- python获取SSL证书信息
代码有问题,有时间再更新 代码有问题,有时间再更新 代码有问题,有时间再更新 from datetime import datetime from urllib3.contrib import pyo ...
- python协程学习——写个并发获取网站标题的工具
平时做渗透的时候,有时候给的是一些域名.一些 url .一些 ip 或者三者都有,手动去一个个地打开比较浪费时间.我们需要用最短时间发现一些有趣的目标,如 xx 管理后台.于是让我们用 pytho ...
最新文章
- 推荐一个HTML的语法高亮解析器
- 图像直接卷积 Sobel 边缘实现
- 关于const 修饰的一些知识
- SwiftUI之深入解析布局如何自定义AlignmentGuides
- JVM总结---各处总结
- 什么是闭合GOP和开放GOP?
- 好好珍惜今生,不要期待来世……
- MCSE2003学习之一
- Xamarin开发笔记—设备类amp;第三方弹窗的使用和注意事项
- 用__postback传递JavaScript变量到c#(pass a js variable to C# by a __postback )
- 同一程序在不同版本的framework下控件中英文显示的问题
- 拓端tecdat|R语言计算资本资产定价模型(CAPM)中的Beta值和可视化
- 浏阳市大瑶计算机学校,2021年湖南长沙浏阳市重点小学排名学校一览
- 十大虚拟化最佳实践(转自Wes Miller的文章)
- webp格式是什么?webp格式怎么打开?webp格式怎么转换gif/jpg/png等?
- php花曲线,ps钢笔工具怎么画曲线
- 图论学习笔记——一笔画(最少笔画)问题
- 【灵修】我去弘化禅寺一游——对学佛的理解(刘俊平)
- 基于SSM框架开发的图书管理系统
- C. Carrying Conundrum(找规律)
热门文章
- css3 border边框斜线,CSS3 斜线分割布局
- Nape的回调系统 nape.callbacks
- 混合式学习,以学习者为中心的新型教学形式
- Tengine + BabaSSL ,让国密更易用
- 1 5 php,直接可以拿来用的PHP惯用功能代码片段(1~5)
- 虚拟机共享计算机的网络连接,Parallels Desktop如何共享网络 Mac与虚拟机共享网络设置教程...
- 基于gibbsLDA的文本分类
- Ogre – 材质脚本(三) (转)
- python选题背景_选题背景和意义
- 7z解压crc错误_百度网盘压缩下载文件的CRC校验错误的解决方法