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...