Python请求的SSL证书问题

Python请求的SSL证书问题,python,python-3.x,ssl,Python,Python 3.x,Ssl,我正在向一个需要SSL证书才能访问的站点发出请求。 当我试图访问URL时,我得到SSL证书错误 import requests proxies = {"https":"https://user:pwd@host:port"} r = requests.get("https://URL", proxies=proxies) print(r.status_code) 文件“C:\Program Files\Python37-32\lib\site packages\requests\session

我正在向一个需要SSL证书才能访问的站点发出请求。 当我试图访问URL时,我得到SSL证书错误

import requests
proxies = {"https":"https://user:pwd@host:port"}
r = requests.get("https://URL", proxies=proxies)
print(r.status_code)
文件“C:\Program Files\Python37-32\lib\site packages\requests\sessions.py”,第533行,在请求中 resp=自我发送(准备,**发送) 文件“C:\Program Files\Python37-32\lib\site packages\requests\sessions.py”,第646行,发送 r=适配器.send(请求,**kwargs) 文件“C:\Program Files\Python37-32\lib\site packages\requests\adapters.py”,第514行,发送 raise SSLError(e,请求=请求) requests.exceptions.SSLError:HTTPSConnectionPool(host='pit-wvrpnpd.johnlewis.co.uk',port=443):url:/suite api超过了最大重试次数(由SSLError引起(SSLCertVerificationError(1',[SSL:CERTIFICATE\u Verification\u FAILED]CERTIFICATE Verification FAILED:CERTIFICATE-signed CERTIFICATE-in-CERTIFICATE-chain(\u SSL.c:1076)))

如果我在Python的请求中使用verify=False,我将得到以下错误

r = requests.get("https://URL", proxies=proxies,verify=False)
C:\Program Files\Python37-32\lib\site packages\urllib3\connectionpool.py:851:UnsecureRequestWarning:正在发出未验证的HTTPS请求。强烈建议添加证书验证。见: 不安全(警告) 403

所以我决定从Chrome“site.cer”下载SSL证书 然后我使用它如下,但它抛出错误

r = requests.get("https://URL", proxies=proxies, cert=('C:\\site.cer'))
文件“C:\Program Files\Python37-32\lib\site packages\requests\sessions.py”,第533行,在请求中 resp=自我发送(准备,**发送) 文件“C:\Program Files\Python37-32\lib\site packages\requests\sessions.py”,第646行,发送 r=适配器.send(请求,**kwargs) 文件“C:\Program Files\Python37-32\lib\site packages\requests\adapters.py”,第514行,发送 raise SSLError(e,请求=请求) requests.exceptions.SSLError:HTTPSConnectionPool(host='pit-wvrpnpd.johnlewis.co.uk',port=443):url:/suite api超过最大重试次数(由SSLError(SSLError(9',[SSL]PEM lib(_SSL.c:3854'))引起)


我正在使用Python3.7,知道我在哪里犯了错误吗?

添加带有
verify=False
的标题给了我访问权限

标题={
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/81.0.4044.138 Safari/537.36”,
}
response=requests.request(“GET”,url,headers=headers,verify=False)

请注意,您通过
验证=False得到的不是错误。只是一个警告,告诉您可能不想使用
verify=False
。问题是,该网站使用的是由您不信任的CA生成的自签名证书。请注意。
cert
选项用于提供客户端证书(用于向服务器验证客户端,但您的错误是客户端未验证服务器)。证书有问题。但是
cert
param用于自签名请求,它不会解决您的问题。查看
verify
。请注意,禁用服务器证书验证后,您将获得403状态代码。服务器拒绝了你的请求。这与TLS/SSL无关。知道下一步要做什么吗?URL在浏览器中运行良好,但在代码中失败