python之網域名稱證書檢測

2021-10-09 07:49:12 字數 1755 閱讀 4558

網際網路安全越來越受到企業重視,https證書也成為各個公司必備,但是網域名稱過多、系統複雜、證書不一致、過期給證書安裝、替換增加了很大的困難,基於此,本文編寫了證書檢測程式,進行常態化監控證書情況

操作環境:python2.7

依賴包:ssl, socket

這裡是關於證書的乙個最新訊息:

從2023年9月1日起,蘋果系統、谷歌和火狐瀏覽器計畫調整受信ssl證書的有效期策略,上述系統或瀏覽器中受信ssl證書的最長有效期將從825天縮短至398天。對此,各ca廠商也將縮短ssl證書的最長有效期。

指令碼分為兩個檔案,乙個網域名稱配置檔案、乙個檢測程式,

配置檔案domain.txt,網域名稱寫入該配置檔案,每行乙個網域名稱

www.***.com

123.***.com

1231.***.com

123.***.com

**

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import ssl, socket

import json

import time

import datetime

socket.setdefaulttimeout(5)

def check_ssl(domain):

try:

hostname = domain

c = 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']+"--->"+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檢測ipa證書過期時間

我們打出的ipa包,對應的證書和mobileprovision檔案是會過期的 過期了之後,ipa就會無法執行或安裝 為了方便知道打出的ipa的過期時間,下面提供乙個python指令碼,方便檢測 需要在mac上執行,把你的ipa放到pyhton指令碼所在的目錄 python指令碼如下 check ti...

用Python來檢查網域名稱HTTPS證書

import ssl,socket hostname www.qq.com c ssl.create default context s c.wrap socket socket.socket server hostname hostname s.connect hostname,443 cert ...

為網域名稱生成證書

0x01 準備工作 1 apt get install net tools 2 netstat ntl 3 apt get install apache2 4service apache2 start 5 netstat ntl 0x02 配置網域名稱解析配置網域名稱管理平台,使用a記錄讓網域名稱和...