ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

某些站点的Python HTTPS请求(urllib2)在没有代理的Ubuntu 12.04上失败

2019-08-07 16:55:56  阅读:218  来源: 互联网

标签:python ssl https 12-04


我有一个用Python编写的小应用程序它曾经工作……直到昨天,它突然开始在HTTPS连接中给我一个错误.我不记得是否有更新,但Python 2.7.3rc2和Python 3.2都失败了.

我搜索了它,发现当人们在代理后面时会发生这种情况,但我不是(自上次工作以来我的网络没有任何变化).我的syster的运行Windows和Python 2.7.2的计算机没有问题(在同一网络中).

>>> url = 'https://www.mediafire.com/api/user/get_session_token.php'
>>> response = urllib2.urlopen(url).read()
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1215, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1177, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol>

怎么了?任何帮助表示赞赏.

PS.:旧的python版本也不工作,不在我的系统中,也不在USB的实时会话中,但是DO在Ubuntu 11.10实时会话中工作.

解决方法:

这似乎与在12.04中发现的OpenSSL版本中添加TLS 1.1和1.2支持有关.可以使用OpenSSL命令行工具重现连接失败:

$openssl s_client -connect www.mediafire.com:443
CONNECTED(00000003)
140491065808544:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 320 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

如果我强制连接使用带有-tls1命令行参数的TLS 1.0,则连接成功.

我建议你在这里提交一个关于这个问题的bug报告:

https://bugs.launchpad.net/ubuntu/+filebug

标签:python,ssl,https,12-04
来源: https://codeday.me/bug/20190807/1611934.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有