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 = s.getpeercert()
cert 裡面就是證書的詳細資訊了, 如下圖所示.
拿到這些資訊後, 與當前時間進行對比, 就可以了.
在比較舊的系統上, 有可能出現certificate verify failed: unable to get local issuer certificate
這種報錯
初步處理辦法:
更新系統的ca證書yum update ca-certificates
重新編譯openssl
重新編譯python3
如果這種辦法也無法解決這個報錯的話, 還有另一種方式進行檢查
需要提前安裝pip3 install pyopenssl
關鍵**如下:
import ssl
import time
import openssl
hostname = 'www.qq.com'
port = 443
cert = ssl.get_server_certificate((hostname, port)).encode()
cert_obj = openssl.crypto.load_certificate(openssl.crypto.filetype_pem, cert)
cert_time = int(time.strftime('%s', time.strptime(cert_obj.get_notafter().decode(), '%y%m%d%h%m%sz')))
這樣也是能獲取到啟用了ssl功能服務埠的證書資訊的. 用模板來進行型別檢查。
在講述之前,請看c 的型別資訊系統 typeid,sizeof,函式呼叫,模板特化 這幾個dd,或者隱藏地轉換c 的型別,或者直接得到型別資訊 前兩個就不說了,沒什麼可說的。現在說函式呼叫,請看如下 void foo int a 這樣的 也許天天在寫,但是,您有沒有注意到,我們在函式呼叫的時候 fo...
用模板來進行型別檢查。
在講述之前,請看c 的型別資訊系統 typeid,sizeof,函式呼叫,模板特化 這幾個dd,或者隱藏地轉換c 的型別,或者直接得到型別資訊 前兩個就不說了,沒什麼可說的。現在說函式呼叫,請看如下 void foo int a 這樣的 也許天天在寫,但是,您有沒有注意到,我們在函式呼叫的時候 fo...
用php來分析篩選網域名稱列表
1.首先要獲取未註冊網域名稱的列表。這裡推薦乙個工具去篩選。2.下面刪除網域名稱列表之後獲取如下檔案.3.現在開始寫php 來刪選網域名稱,和 篩選網域名稱是一樣的 為了鞏固基礎知識。用最笨的方法寫。但是效率沒問題 哈哈。那裡的曬選條件自己隨便定義。篩選網域名稱的思路方法應該就是這個吧。有能力的可寫...