转载:Python关于SSL验证问题
温馨提示:这篇文章已超过1051天没有更新,请注意相关的内容是否还可用!
不知道写些什么,看到腾讯开发者一篇关于记录Python的文章就转载下,据说有一些用户在某些机器运行SDK或者自己拼包等发生了SSL验证的问题,为了解决大家的这个问题,总结本文。
Urllib部分
解决方法1:
使用ssl创建未经验证的上下文,在urlopen中传入上下文参数
import ssl import urllib2 context = ssl._create_unverified_context() print urllib2.urlopen("https://cvm.tencentcloudapi.com/", context=context).read()
解决方法2:
导入ssl时关闭证书验证
import sslimport urllib2 ssl._create_default_https_context = ssl._create_unverified_context print urllib2.urlopen("https://cvm.tencentcloudapi.com/").read()
python3的话,适当修改一下urllib就可以了。
requests部分
解决方法1:
通过 verify 指定证书,表示相信此证书;也可以用 verify=False,表示不验证服务器端的证书。
#!/bin/env python import requests url = "https://cvm.tencentcloudapi.com" ret = requests.get(url, verify="/Test/ssl_address/api.com.crt") print ret.status_code
解决方法2:
设置环境变量 REQUESTS_CA_BUNDLE:
export REQUESTS_CA_BUNDLE=/tmp/ssl/api.com.crt
然后使用 request 访问。
#!/bin/env python import requests url = "https://cvm.tencentcloudapi.com" ret = requests.get(url)print ret.status_code
Scrapy部分
解决方法:
pip uninstall scrapy pip uninstall pyopenssl pip install pyopenssl pip install scrapy
文章版权声明:除非注明,否则均为老李笔记原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...