我使用的是python 2.7.10
request = urllib2.Request(url, data=urllib.urlencode(params))
f = urllib2.urlopen(request))
导致以下异常:urlopen错误[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)
URL是在IIS中托管的网站,我们的组织是ca sign cert . 我已经将根证书导入 windows certificate manager 并且我能够安全地在浏览器中打开URL without 遇到像"There is a problem with this website’s security certificate."这样的消息
如何解决此问题?我不想禁用SSL验证
1 回答
当您通过浏览器访问URL时,浏览器将成为客户端,服务器将成为托管哪个Web站点的站点 . 现在,由于您已经为浏览器导入了CA证书,这就是为什么网站在浏览器中无错误地打开的原因 .
现在,当您从python脚本打开同一个网站时,客户端将成为您的python脚本,并且它不知道此CA证书 . Python脚本不使用 Windows Certificate 存储,因此您必须指定 CA certificate ,将对其进行证书验证 .
因此,您已明确告知脚本有关CA证书的内容如下:
您可以在此处找到文档:urllib2.urlopen .
UPDATE
以上链接的片段: