我试图访问已过期/无效证书的网页。当我从浏览器访问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行为与请求行为不同?
答案 0 :(得分:0)
Python之前的2.7.9尚未验证证书。
Python 2.7.9包含许多已被批准包含在Python 2.7维护版本中的网络安全增强功能。 PEP 476更改了几个标准库模块,如httplib,urllib2和xmlrpclib,默认情况下验证服务器通过安全(TLS)连接提供的证书。
从2.7.14安装说明。
另见