我有一個應用程式通過aiohttp庫發出 api 請求。
session = aiohttp.ClientSession()
session.get(url, proxy=get_proxy_v2(), ssl=False)
我每秒發出大約 10 個請求。大約每小時一次,我收到以下錯誤:
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host <REDACTED_HOST>:443 ssl:False [[SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:997)]
最初,我沒有ssl=False但添加以嘗試避免此錯誤,但它沒有效果,大約每小時一次我仍然收到此錯誤。我可以簡單地添加一個 try catch 來捕獲錯誤并重試,但希望正確修復此錯誤。盡管我將 ssl 設定為 False,但我對如何收到 SSL 錯誤感到有些困惑。不知道從這里去哪里。
uj5u.com熱心網友回復:
盡管我將 ssl 設定為 False,但我對如何收到 SSL 錯誤感到有些困惑。
ssl=False僅忽略證書驗證錯誤。但是 TLSV1_ALERT_INTERNAL_ERROR 與證書驗證無關,所以這個選項在這里沒有幫助。除此之外,這個設定ssl=False是一個非常糟糕的主意,因為它顯著降低了 HTTPS 提供的安全性 - 它不再能夠防止中間人攻擊。
可能發生 TLSV1_ALERT_INTERNAL_ERROR 的原因有很多,比如沒有通用的密碼或協議版本、需要客戶端證書、服務器過載或其他什么。在 Internet 上連接任意服務器時,預計有時會發生此類錯誤。捕獲錯誤并暫時忽略此服務器通常是正確的選擇。
如果錯誤發生在真正想要連接的服務器上,則必須分析此特定服務器出現問題的原因,然后嘗試解決此特定原因,即沒有通用的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/382248.html
下一篇:當ingress-nginx啟用sslpasstrough時,所有后端是否都受到性能損失的影響?我應該使用單獨的入口嗎?
