我试图访问已过期/无效证书的网页。当我从浏览器访问URL时,我会得到安全警告Your connection is not private。但是,当我使用python访问同一个页面时,我不会收到任何错误。我使用的代码如下,
import urllib2
url = 'https://expired.badssl.com/'
request = urllib2.Request(url)
result = urllib2.urlopen(request)
print (result.read())为什么我没有在urllib2中获得SSL证书错误?
更新
我发现下载的页面是我的互联网认证页面。
但是当我使用requests时,我得到了SSL。为什么urllib2行为不同于请求行为?
发布于 2017-09-19 15:41:59
Python以前的2.7.9还没有验证证书。
Python2.7.9包含了许多网络安全增强,这些增强已经被批准包含在Python2.7维护版本中。PEP 476将一些标准库模块(如httplib、urllib2和xmlrpclib )更改为在默认情况下验证服务器通过安全(TLS)连接提供的证书。
2.7.14安装说明。
另请参阅
https://stackoverflow.com/questions/45481341
复制相似问题