前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python关于SSL验证问题

Python关于SSL验证问题

原创
作者头像
None-xiaomi
修改2018-07-20 09:15:45
3.2K0
修改2018-07-20 09:15:45
举报
文章被收录于专栏:腾讯云API腾讯云API

问:为什么要写这个文章?

答:因为有一些用户在某些机器运行SDK或者自己拼包等发生了SSL验证的问题,为了解决大家的这个问题,总结本文。

Urllib部分

解决方法1:

使用ssl创建未经验证的上下文,在urlopen中传入上下文参数

代码语言:javascript
复制
import ssl
import urllib2
  
context = ssl._create_unverified_context()
print urllib2.urlopen("https://cvm.tencentcloudapi.com/", context=context).read()

解决方法2:

导入ssl时关闭证书验证

代码语言:javascript
复制
import ssl
import 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,表示不验证服务器端的证书。

代码语言:javascript
复制
#!/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 访问。

代码语言:javascript
复制
#!/bin/env python
import requests
url = "https://cvm.tencentcloudapi.com"
ret = requests.get(url)
print ret.status_code

Scrapy部分

解决方法:

代码语言:javascript
复制
pip uninstall scrapy
pip uninstall pyopenssl
pip install pyopenssl
pip install scrapy

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Urllib部分
  • requests部分
  • Scrapy部分
相关产品与服务
云 API
云 API 是腾讯云开放生态的基石。通过云 API,只需少量的代码即可快速操作云产品;在熟练的情况下,使用云 API 完成一些频繁调用的功能可以极大提高效率;除此之外,通过 API 可以组合功能,实现更高级的功能,易于自动化, 易于远程调用, 兼容性强,对系统要求低。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档