簡體   English   中英

Python 3 SSL 搶不到證書

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM