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

2022-08-19 03:51:13 字數 1136 閱讀 9176

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 來刪選網域名稱,和 篩選網域名稱是一樣的 為了鞏固基礎知識。用最笨的方法寫。但是效率沒問題 哈哈。那裡的曬選條件自己隨便定義。篩選網域名稱的思路方法應該就是這個吧。有能力的可寫...