Python关于SSL验证问题

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

答:因为有一些用户在某些机器运行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 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,表示不验证服务器端的证书。

#!/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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏酷玩时刻

开启全站HTTPS时代-Nginx SSL+tomcat集群

可以看看简书上的这篇文章写得比较详细《Let's Encrypt SSL证书配置》

1703
来自专栏技术博文

ssh证书登录

ssh有密码登录和证书登录,初学者都喜欢用密码登录,甚至是root账户登录,密码是123456。但是在实际工作中,尤其是互联网公司,基本都是证书登录的。内网的机...

7496
来自专栏云计算教程系列

如何在Debian 9中为Apache创建自签名SSL证书

TLS或传输层安全性及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。

1842
来自专栏云计算教程系列

为Apache创建自签名SSL证书

TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还...

79110
来自专栏云计算教程系列

如何为Nginx创建自签名SSL证书

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

5692
来自专栏康怀帅的专栏

nginx 配置 TLSv1.3

将 即将 发布的 TLSv1.3 作为 https 系列的开篇。

5916
来自专栏友弟技术工作室

openSSH服务及其应用

1515
来自专栏云计算教程系列

如何在Debian 9上为Nginx创建自签名SSL证书

TLS或传输层安全性及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。

3483
来自专栏小狼的世界

PHP使用DES进行加密和解密

DES是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科:

1722
来自专栏bboysoul

esxi 更换ssl证书

就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上

3711

扫码关注云+社区

领取腾讯云代金券