python 通過兩種方式獲取SSL證書資訊

2021-10-02 14:27:48 字數 3124 閱讀 8220

ssl證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因為配置在伺服器上,也稱為ssl伺服器證書。

ssl 證書就是遵守 ssl協議,由受信任的數字證書頒發機構ca,在驗證伺服器身份後頒發,具有伺服器身份驗證和資料傳輸加密功能。

x.509是itu-t標準化部門基於他們之前的asn.1定義的一套證書標準。x.509 證書己應用在包括tls/ssl(www全球資訊網安全瀏覽的基石)在內的眾多 internet協議裡.

一般會包含以下的資訊:

1.版本號

2.擁有者公鑰

3.證書的序列號,同乙個發布者範圍內唯一的

4.擁有者標識,這個標識是全世界唯一的

5.證書的有效期

6.發布者的數字簽名

7.簽名演算法的描述

x509證書檔案,根據封裝的不同,主要有以下三種型別:

*.cer:單個x509證書檔案,不私鑰,可以是二進位制和base64格式。該型別的證書最常見;

*.p7b:pkcs#7格式的證書鏈檔案,包含乙個或多個x509證書,不含私鑰。通常從ca中心申請rsa證書時,返回的簽名證書就是p7b格式的證書檔案;

*.pfx:pkcs#12格式的證書檔案,可以包含乙個或者多個x509證書,含有私鑰,一般有密碼保護。通常從ca中心申請rsa證書時,加密證書和rsa加密私鑰就是乙個pfx格式的檔案返回。

pip install pyopenssl==

19.1

.0pip install python-dateutil==

2.8.1

第一種通過傳入網域名稱獲取證書資訊:

def

domain_analysis

(domain)

:"""

# 查詢網域名稱證書到期

0]# 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

version =

'' encryption =

''if agreement:

version = agreement.split(

' / ')[

0]encryption = agreement.split(

' / ')[

1]dic =

return

except exception as e:

logger.error(u'網域名稱獲取證書異常:%s'

% e)

return

第二種通過匯入證書內容解析證書資訊:

def

check_cer

(cert_str)

:try

: cert = crypto.load_certificate(crypto.filetype_pem, test)

print cert

subject = cert.get_subject(

)# 得到證書的網域名稱

issued_to = subject.cn

issuer = cert.get_issuer(

)# 得到證書頒發機構

issued_by = issuer.cn

#datetime_struct = parser.parse(cert.get_notbefore(

).decode(

"utf-8"))

datetime_struct_end = parser.parse(cert.get_notafter(

).decode(

"utf-8"))

# 加密演算法

encryption = cert.get_signature_algorithm(

).decode(

"utf-8"

) version = cert.get_version(

)return

except exception as e:

logger.error(u'證書解析異常:%s'

% e)

return

詳情參考

第一種呼叫測試結果如下(第二種方式同樣的結果)。

python的兩種退出方式

os.exit 會直接將python程式終止,之後的所有 都不會繼續執行。sys.exit 會引發乙個異常 systemexit,如果這個異常沒有 獲,那麼python直譯器將會退出。如果有捕獲此異常的 那麼這些 還是會執行。1 importos2 3try 4 os.exit 0 5except ...

Python的兩種執行方式

python是由guido van rossum於1989年底發明的,1989年聖誕節期間,在阿姆斯特丹,guido為了打發聖誕節的無趣,決心開發乙個新的指令碼解釋程式,做為abc 語言的一種繼承。之所以選中python 大蟒蛇的意思 作為程式的名字,是因為他是乙個叫monty python的喜劇團...

python裝飾器兩種方式

1.普通裝飾器 def decorate fun 普通裝飾器 param fun return def inner args,kwargs print 呼叫裝飾器之前 fun args,kwargs print 呼叫裝飾器之後 return inner decorate method decorat...