簡體   English   中英

SSL錯誤:例程:SSL3_GET_SERVER_CERTIFICATE:證書驗證失敗

[英]SSL error : routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我在txt文件中有大量的文件下載鏈接。 我試圖寫一個python腳本一次下載所有文件,但我最終得到以下錯誤:

SSLError: [Errno 1] _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

該文件正通過Intranet下載。

我試圖通過瀏覽器下載文件,然后彈出some certificate 我試圖谷歌它,但沒有找到解決這個問題的方法。

服務器證書無效,原因是它由無效的CA(內部CA,自簽名,...)簽名,與服務器名稱不匹配或因為它已過期。

無論哪種方式,您需要找到如何告訴Python庫您正在使用它如果您真的想要從此服務器下載文件,它必須不會停在無效的證書上。

在使用requests時親自體驗過:

這是非常不安全的; 僅作為最后的手段使用! (見rdlowrey的評論。)

requests.get('https://github.com', verify=True)

使verify=False對我來說是個竅門。

今天遇到這個問題,經過幾個小時的漫游后才知道我的服務器日期時間錯了。

因此,首先請檢查您的服務器日期時間,然后再深入研究此問題。

也試着去做

>> sudo update-ca-certificates

最近在一個python應用程序中使用ubuntu 14.04LTS上的請求得到了同樣的錯誤,我認為一直運行正常(可能是它並且發生了一些更新)。 執行以下步驟為我修復了它:

pip install --upgrade setuptools
pip install -U requests[security]

這是一個參考: https//stackoverflow.com/a/39580231/996117

當你的當地時間關閉時(例如在證書驗證時間之前)也可能發生,我的錯誤就是這種情況......

由於certifi庫,我遇到了同樣的問題。 安裝不同的版本對我也有幫助。

通常更新certifi和/或certifi cacert.pem文件將起作用。 我還必須更新我的python版本。 比。 由於處理SNI請求的方式,2.7.5無法正常工作。

獲得最新的pem文件后,您可以使用以下命令發出http請求:

requests.get(url, verify='/path/to/cacert.pem')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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