anacond 或python3 報check_hostname requires server_hostname錯誤


前往墨抒穎的網站查看純凈版本

anacond 或python3 報check_hostname requires server_hostname錯誤

在anaconda啟動過程中提示如下錯誤

image

或者你可以在python3中看到類似的錯誤

image

錯誤解析

出現問題的主要原因是Urllib3 的 1.26.4 版本中存在一個錯誤。

在 Python 3.4 和 2.7.9 中,SSLContext 上有一個 check_hostname 屬性,它將讓 SSLContext 實例處理檢查 do_handshake 中的主機名。urllib3 在可能的情況下依靠它而不是自己進行檢查會很好。我認為這與將 SSLContext 用作 TLS 內容的"bag of configuration"的其他內容相得益彰。這可以通過確定 SSLContext 對象是否具有 check_hostname 屬性來檢測。有一個缺點,這依賴於將主機名作為 SSLContext().wrap_socket(server_name=)的一部分傳遞。最初這僅在 OpenSSL 啟用了 SNI 時才有效。但是即使未啟用 SNI,Python 3.4.3 和 2.7.9 也會接受 server_name。

解決方案

1. URLLIB3 降低到1.25.8以下urllib3 == 1.25.8

image

2. 請求方法加驗證=假參數

response = requests.request('GET', 'http://xxx.xxxx.com', verify=False)

直接運行會報如下警告:

InsecureRequestWarning:正在發出未經驗證的 HTTPS 請求。強烈建議添加證書驗證。請參閱:https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning,

3. 在請求請求前,添加如下代碼,即可解決以上警告

Urllib3.disable_warnings() 或 Requests.Packages.urllib3.disable_warnings()

4. 關掉代理

image

相關文章

liunx下遠程anaconda 搭建/構建環境,連接,移植/拷貝環境
Python3 獲取任意貼吧 最新帖子制作詞雲圖存儲為markdown


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM