利用python生成F5 SSL 證書狀態報表

2021-10-01 05:47:31 字數 2789 閱讀 6878

f5提供了各種配置和查詢的restful api,通過這些api可以進行各種查詢和配置。本文通過f5 提供的restful api 獲取ssl 狀態,並且篩選出即將過期的ssl 證書,傳送郵件提醒。

f5operation 類中方法介紹:

本例中查詢除了獲取f5上ssl 證書狀態外,還需要利用公司系統進行查詢,不具有通用性,因此不在此貼出**。

import requests

import json

import win32com

class

f5operation

:def

__init__

(self, host, username, password)

: self.username = username

self.password = password

self.url = host

deflogin

(self)

: auth_url = self.url +

"/mgmt/shared/authn/login"

data =

header =

ret = requests.post(auth_url, data=json.dumps(data)

, verify=

false

, headers=header)

.json(

)if ret.get(

"token"

)return ret[

'token'][

'token'

]else

:print

("cannot get token of %s"

%self.host)

sys.exit(1)

defget_metric

(self, metric_url)

: full_url = self.url + metric_url

print

(full_url)

token = self.login(

)print

(token)

header =

metric_ret = requests.get(full_url, headers=header, verify=

false,)

.json(

)return metric_ret

由於是在windows下程式設計,郵件傳送可以選擇win32com 中呼叫本機的outlook程式傳送,也可以利用smtplib 傳送郵件。因為smtplib需要設定smtp伺服器位址,當前沒有公司的smtp伺服器位址,因此使用win32com 呼叫outlook傳送郵件

win32com是功能強大的模組,可以呼叫window下各種程式。

郵件傳送類實現如下:

import win32com.client as com

class

outlook

:def

__init__

(self)

:pass

@staticmethod

defsend_mail

(revc, subject,body, html, display, cc=

none

,bcc=

none):

outlook = com.dispatch(

) mail = outlook.createitem(0)

mail.to = revc

mail.subject = subject

if cc:

mail.cc = cc

if bcc:

mail.bcc = bcc

if html:

""" set the format of mail

1 - plain text

2 - html

3 - rich text

"""mail.bodyformat =

2 mail.body = body

if display:

mail.display(

true

)else

: mail.send(

)

有了這兩個類後,在主函式中即可實現需求。

根據官方文件(apiref_tm_sys_file_system-ssl-cert.html)和web檢視路徑,初步認為/mgmt/tm/sys/file/system-ssl-cert 是獲取ssl 證書狀態的url

多次嘗試,無法獲取到證書狀態,懷疑是許可權或方法問題,嘗試從/mgmt/tm/ltm/pool獲取pool資訊,獲取成功,說明方法和許可權沒有問題;

退一步,使用/mgmt/tm/sys/file 獲取file中的資訊,獲得一下資訊:

},

},},

},},

},},

},},

},},

},},

}]}

嘗試從/mgmt/tm/sys/file/ssl-cert獲取,可以獲取到ssl證書列表和狀態資訊。返回官方文件

apiref_tm_sys_file.html

可見文件中也提供了各種檔案中的url。在使用url獲取資訊,且對該功能不熟悉時,不要盲目,先看官方文件,如果乙個url無法獲取,及時換另乙個。

如果需要對多個f5 ssl 證書進行檢查。可以利用利用多線程序方式實現。

team training 5 F 最小生成樹

這道題很好,我一開始用的是那種苗條生成樹 最大邊 最小邊的 方式,這樣當然是錯了。突然發現,這樣的學習是比較有收穫的,我一定要多做這種學習,而且要快 gym 100803f 看了大佬的 太好了,學到了很多。1 del的技術 2 用bool f 來重用 3 刪掉邊的思想。4 includeusing ...

如何利用python生成MD5並去重

給每個檔案生成乙個md5值,來對檔案進行加密,是常用的檔案校驗方法,但是md5的缺陷就是不能防止碰撞,所以不同檔案生成的md5可能是相cyldbf同的,因此就需要進行去重操作。為方便演示,我用txt檔案代替資料夾,用txt檔案中的字串代替資料夾中檔案來生成md5值並進行去重操作。每個txt檔案中有字...

利用Python生成檔案md5校驗值函式的方法

前言 在linux有個命令叫做md5sum,能生成檔案的md5值,一般情況下都會將結果記錄到乙個檔案中用於校驗使用,比如會這樣使用 crazyant lo程式設計客棧calhost pythonmd5 more sample file www.crazyant.net www.51projob.co...