首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略证书验证urllib2

忽略证书验证urllib2
EN

Stack Overflow用户
提问于 2013-10-09 09:47:27
回答 6查看 148.1K关注 0票数 65

在向服务器请求时,我想忽略带有内部公司链接的certification validation

对于python requests库,我会这样做:

代码语言:javascript
复制
r = requests.get(link, allow_redirects=False,verify=False)

如何对urllib2库做同样的操作?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-10-09 10:14:34

默认情况下,urllib2不验证服务器证书。检查这个文档。

编辑:正如在下面的评论中所指出的,对于新版本(似乎类似于>= 2.7.9),这种情况已经不再适用了。请参阅下面的回答

票数 0
EN

Stack Overflow用户

发布于 2015-01-20 14:49:15

同时,urllib2似乎在默认情况下验证服务器证书。2.7.9的警告,这是在过去显示的 消失了和我目前在一个带有自签名证书(和Python2.7.9)的测试环境中遇到了这个问题。

我的邪恶解决方案(不要在生产中这样做!):

代码语言:javascript
复制
import urllib2
import ssl

ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

urllib2.urlopen("https://your-test-server.local", context=ctx)

根据医生直接调用SSLContext构造函数也应该有效。我还没试过。

票数 151
EN

Stack Overflow用户

发布于 2017-02-17 16:24:34

最简单的方法:

python 2

代码语言:javascript
复制
import urllib2, ssl

request = urllib2.Request('https://somedomain.co/')
response = urllib2.urlopen(request, context=ssl._create_unverified_context())

python 3

代码语言:javascript
复制
from urllib.request import urlopen
import ssl

response = urlopen('https://somedomain.co', context=ssl._create_unverified_context())
票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19268548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档