python requests SSL證書問題

2022-04-03 08:01:11 字數 1684 閱讀 6967

錯誤資訊如下:

requests.exceptions.sslerror: ("bad handshake: error([('ssl routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

#方法一

import requests

from bs4 import beautifulsoup

url = ''

req = requests.get(url,verify=false)

req.encoding = 'utf-8'

soup = beautifulsoup(req.text,'lxml')

print(soup)

ssl._create_default_https_context = ssl._create_unverified_context#注意用了這個就不能用requests了,得用urllib2.request

完整**如下:

經過大半年之後我又回到了爬蟲:對於咱們上面兩個方法我又發現了乙個好的ssl證書驗證的方法:加引數:verify=false

完整**如下:

#ssl證書驗證

import requests

response = requests.get('', verify=false)

print(response.status_code)

不過我們發現報了乙個警告,它建議我們給它指定證書。我們可以通過設定忽略警告的方式來遮蔽這個警告:

import requests

from requests.packages import urllib3

urllib3.disable_warnings()

response = requests.get('', verify=false)

print(response.status_code)

或者通過捕獲警告到日誌的方式忽略警告:

import logging

import requests

logging.capturewarnings(true)

response = requests.get('', verify=false)

print(response.status_code)

如果我上面三種方法還不能解決你ssl的錯誤的話,請重新安裝requests:

pip install requests==2.6.0

pip install requests==2.7.0

再次執行成功。

import requests

req = requests.get('',verify=false)

print(req.text)

使用cloudflare後的ssl證書問題

2 您的 訪問者和cloudflare之間有加密連線,但是從cloudflare到您的伺服器沒有加密。即半程加密。優點在於 你的 不需要ssl證書,使用者也能實現ssl加密訪問。確保你的伺服器沒有ssl證書,否則使用該模式會導致不斷重定向的問題。3 全程加密,即從你的 到cdn伺服器再到使用者,全程...

證書鏈 證書校驗

回到證書鏈,在證書認證過程中,由於校驗方,通常為瀏覽器中,繼承的是權威ca機構的根證書,因此對於一些經授權的中間證書,瀏覽器卻識別不了 當然也有部分中間證書可以被識別 因此仔部署https 時,需要構建正確的證書鏈,告訴驗證方,該伺服器證書和它的簽署機構,以及根證書 權威ca機構 之間的關係。在證書...

理解證書和證書鏈

證書和證書鏈 最近一直在研究的東東,這東西說到底,也是依賴於乙個前提 root 證書,所以說很多安全說最終也是個偽命題 只是搞理論的人喜歡 把東西搞複雜,亂扯概念,不講本質。1.簡單來說,end user證書上面幾級證書都是為了保證end user證書未被篡改,保證是ca簽發的合法證書,進而保證en...