【发布时间】:2013-09-05 20:54:07
【问题描述】:
我正在使用请求与 django 应用程序进行通信,但是
当我尝试时
requests.get('https://mysite.com', verify=True)
我得到错误:
主机名“mysite.com”与“*.myhost.com”、“myhost.com”中的任何一个都不匹配
但是,当我查看浏览器或http://www.digicert.com/help/ 时,证书看起来不错。
我的主人认为这是由于请求缺乏 SNI 支持(Github 似乎证实了这一点 https://github.com/kennethreitz/requests/issues/749 )。有没有人找到使用请求的解决方法?
【问题讨论】:
-
我编辑了 Lukasa 答案(正确的答案),以便在您无法使用最新的 github 版本的情况下,在较旧的请求中支持 SNI。请确保您的系统中安装了所需的依赖项(不仅是 python 依赖项,还有 openssl)。编辑审核后将可用 :)
-
我认为最好创建一个新答案,而不是在某人的帖子中进行重新编辑
-
嗯,他的回答是正确的,所以我认为对于另一种情况有另一个答案并不好,我个人真的更喜欢一个包含所有信息的答案。但我会发布另一个答案。
-
很好奇,你用什么操作系统来测试这个?使用 Ubuntu Precise 打 SNI 主机对我有用,但对 Lucid 无效,我不知道为什么。 stackoverflow.com/questions/24522757/…
标签: python ssl ssl-certificate python-requests sni