[英]Python 3 SSL cannot grab certificate
我正在嘗試讓一個簡單的 function 從服務器收集證書。 使用 Python 3.10.8 和我的代碼看起來是這樣的:
import ssl
def certgrab(dom):
address = (dom, 443)
try:
f = ssl.get_server_certificate(address)
except Exception as clanger:
return {'clanger': clanger}
print(f)
當我嘗試針對“google.com”或“microsoft.com”時,這很好。 但大多數網站返回以下錯誤:{'clanger': ConnectionRefusedError(10061, 'No connection could be made because the target machine actively refused it', None, 10061, None)}。
我想知道這是否是拒絕,因為這些網站不喜歡用戶代理(請求適用於我測試的所有內容,但顯然無法獲取證書(除非它秘密地可以 - 這會很棒。)。但我找不到在 SSL 庫中指定一個的方法。
我有點不知所措,因為它對“google.com”和“microsoft.com”有效(但我想他們可能已經將他們的網站設置為慷慨/寬容他們支持的連接類型)。
ConnectionRefusedError(10061, '由於目標機器主動拒絕,無法建立連接'
這與證書無關,甚至與 TLS 無關。 這是 TCP 級別的連接錯誤,即甚至在任何 TLS 和證書生效之前。
但大多數網站返回以下錯誤...
如果這真的是“大多數網站”,那么您的基礎架構可能會出現嚴重問題,從而限制對 inte.net 大部分內容的訪問。 或者,您可能需要使用代理 - 但 ssl.get_server_certificate 不支持代理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.