当前位置: 首页 > 知识库问答 >
问题:

Python3.4 SSL错误urlopen错误EOF违反了协议(_SSL.c:600)

叶浩荡
2023-03-14

我使用ArchLinux,python 3.4,openSSL 1.0.2d。当我请求https://www.supercash.cz/我得到这个错误。无论我使用请求还是在urllib中构建,总是会有相同的错误。此网站的SSL证书接缝在浏览器Chrome。

File "/usr/lib64/python3.4/urllib/request.py", line 463, in open
    response = self._open(req, data)
File "/usr/lib64/python3.4/urllib/request.py", line 481, in _open
    '_open', req)
File "/usr/lib64/python3.4/urllib/request.py", line 441, in _call_chain
    result = func(*args)
File "/usr/lib64/python3.4/urllib/request.py", line 1225, in https_open
    context=self._context, check_hostname=self._check_hostname)
File "/usr/lib64/python3.4/urllib/request.py", line 1184, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error EOF occurred in violation of protocol (_ssl.c:600)>

我试过这个,但它只在python2中有效。7错误-urlopen错误[Errno 8]\u ssl。c:504:EOF违反了协议,需要帮助

这是ssl测试的结果https://www.ssllabs.com/ssltest/analyze.html?d=supercash.cz

共有2个答案

黄朗
2023-03-14

这里描述了一种可能的解决方案

https://github.com/kennethreitz/requests/issues/3006#issuecomment-274058323

https://web.archive.org/web/20160705110216/https://github.com/kennethreitz/requests/issues/3006

使用python3并安装组合(pyopenssl-ndg-httpsclient-pyasn1-urllib3)实现了这一点。

pip install pyopenssl ndg-httpsclient pyasn1 urllib3
司马祖鹤
2023-03-14

这与此错误相同:Python请求。例外情况。SSLError:[Errno 8]\u ssl。c:504:EOF违反了协议

您必须使用自定义HTTPAdapter,如下所述:https://stackoverflow.com/a/14146031/407580

>>> import requests
>>> from requests.adapters import HTTPAdapter
>>> from requests.packages.urllib3.poolmanager import PoolManager
>>> import ssl
>>>
>>> class MyAdapter(HTTPAdapter):
...     def init_poolmanager(self, connections, maxsize, block=False):
...         self.poolmanager = PoolManager(num_pools=connections,
...                                        maxsize=maxsize,
...                                        block=block,
...                                        ssl_version=ssl.PROTOCOL_TLSv1)
...
>>> s = requests.Session()
>>> s.mount('https://', MyAdapter())
>>> s.get('https://www.supercash.cz')
<Response [200]>
 类似资料:
  • 我正在使用gevent为游泳池运行许多芹菜任务(20000个)(也包括猴子修补所有)。这些任务中的每一项都会通过第三方服务(如adwords)来获取数据。 由于潜在的SSL错误,我一直有任务失败。下面是一些异常的堆栈跟踪(没有特定的顺序,这些是单独任务的失败)。我偶尔也会遇到WantWriteError和ZeroReturnError,但EOF错误似乎最多。 这些错误发生在使用不同的客户端库时,如

  • 我正在尝试连接Neo4j,但我一直收到这个错误。我试过了 但当我尝试连接时,会出现这个错误 SecurityError:无法建立到“EOF违反协议(_ssl.c:841)”的安全连接 我可以在打字时连接到浏览器http://localhost:7474/browser/ 以下是完整的错误日志: ----------------------------------------------------

  • 我使用Django芹菜任务连接到Facebook Graph API,并使用Gevent请求库。我经常遇到的问题是,偶尔我会发现EOF违反了协议异常。我四处搜索,各种来源提供了不同的修复方法,但似乎都不起作用。 我尝试过用monkey修补ssl模块(gevent.monkey.patch_all())和其他一些模块,但没有成功。 我甚至不确定这是否是openssl问题,因为在应用Gevent优化之

  • 我正在向我使用httplib2拥有的REST服务发出HTTPS GET请求,但我们得到了错误: 所有其他客户端都运行良好(浏览器、Java客户端等...),只有一个小例外,PHP curl需要设置为使用SSL v3。 我已经搜索了周围,它似乎确实是一个关于SSL版本的错误,但我似乎找不到一种方法来改变它在http://www. ttplib2.除了改变源代码中的以下行之外,还有什么方法可以解决这个

  • 问题内容: 我正在尝试使用.get方法使用Alamofire调用服务。该请求没有什么特别的,没有任何参数,只是一个Authorization标头。 我在这里有点生气,因为当我在具有相同URL和授权令牌的邮递员上运行请求时,请求工作正常,但是当我使用Alamofire运行应用程序代码时,它将返回此错误: 错误域= NSPOSIXErrorDomain代码= 100“协议错误” UserInfo =