基于python檢查SSL證書到期情況代碼實例
結(jié)合郵件告警和頁面展示,再多的域名證書到期情況即可立馬知道
代碼示例:
# 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 字符串轉(zhuǎn)時間數(shù)組
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 字符串轉(zhuǎn)時間數(shù)組
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")
# 剩余天數(shù)
remaining = (expire_date-datetime.now()).days
print ('域名:', domain)
print ('通用名:', common_name)
print ('開始時間:', start_date_st)
print ('到期時間:', expire_date_st)
print (f'剩余時間: {remaining}天')
print ('頒發(fā)機構(gòu):', issuer)
print ('*'*30)
time.sleep(0.5)
if __name__ == "__main__":
domains = ['www.baidu.com']
for domain in domains:
main(domain)
結(jié)果示例:
域名: www.baidu.com
通用名: baidu.com
開始時間: 2019-05-09 01:22:02
到期時間: 2020-06-25 05:31:02
剩余時間: 82天
頒發(fā)機構(gòu): GlobalSign Organization Validation CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
******************************
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python生成F分布表并導出為Excel文件的代碼實現(xiàn)
在統(tǒng)計分析中,F FF分布是一種非常重要的連續(xù)概率分布,廣泛應用于方差分析、回歸分析的顯著性檢驗等場景,為了方便查閱和使用F分布的臨界值,本文給大家介紹了使用Python生成F分布表并導出為Excel文件,需要的朋友可以參考下2024-11-11
Python中表達式x += y和x = x+y 的區(qū)別詳解
這篇文章主要跟大家介紹了關(guān)于Python中x += y和x = x+y 的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06
python爬蟲scrapy基于CrawlSpider類的全站數(shù)據(jù)爬取示例解析
這篇文章主要介紹了python爬蟲scrapy基于CrawlSpider類的全站數(shù)據(jù)爬取示例解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

