2016-07-16 10 views
2

WebサイトのコンテンツをダウンロードするPythonスクリプトを書いていますが、Linuxマシンで実行するときちんとうまく動作しますウィンドウ(それはウィンドウ上で実行する必要があります)。ここでPython:Windows上で実行されたときにLinux上で実行されたときに、悪意のあるハンドシェークエラーが発生しました

は、エラーを生成するコードです:ここでは

import requests 
    c = requests.Session() 
    url = 'https://ted.jeancoutu.com/action/login' 
    c.get(url) 

は、私はWindowsマシン上でコードを実行するとき、私は取得エラーメッセージです:

Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 348, in ssl_wrap_socket 
    cnx.do_handshake() 
    File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1443, in do_handshake 
    self._raise_ssl_error(self._ssl, result) 
    File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1191, in _raise_ssl_error 
    _raise_current_error() 
    File "C:\Python34\lib\site-packages\OpenSSL\_util.py", line 48, in exception_from_error_queue 
    raise exception_type(errors) 
OpenSSL.SSL.Error: [('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')] 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 578, in urlopen 
    chunked=chunked) 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 351, in _make_request 
    self._validate_conn(conn) 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 814, in _validate_conn 
    conn.connect() 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connection.py", line 289, in connect 
    ssl_version=resolved_ssl_version) 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 355, in ssl_wrap_socket 
    raise ssl.SSLError('bad handshake: %r' % e) 
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\requests\adapters.py", line 403, in send 
    timeout=timeout 
    File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 604, in urlopen 
    raise SSLError(e) 
requests.packages.urllib3.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",) 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python34\lib\site-packages\requests\sessions.py", line 487, in get 
    return self.request('GET', url, **kwargs) 
    File "C:\Python34\lib\site-packages\requests\sessions.py", line 475, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Python34\lib\site-packages\requests\sessions.py", line 585, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python34\lib\site-packages\requests\adapters.py", line 477, in send 
    raise SSLError(e, request=request) 
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",) 

私は解決策を見つけることができませんでしたこの問題に。私はオンラインで見つけた多くの提案を試みたが、何も働かなかった。 pyOpenSSL、ndg-httpsclient、pyasn1をインストールしました。私もsslをアップグレードしましたが、まだ何もありません。

をご提案

答えて

1

ありがとうございサイトted.jeancoutu.comはRC4-SHAサポートし、RC4-MD5暗号は(SSLLabs reportを参照してください。RC4暗号が安全でないとみなされ、したがって、リクエストに設定されているデフォルトの暗号から外してしまいましたそれはまだ動作しますのでversion 2.5.2 in 02/2015に。おそらく、Linux上の要求の古いバージョンを使用しているが、それはWindows上で新しいバージョンで失敗します。

は、安全でない暗号を有効にすることで問題を回避する方法についてはhttps://stackoverflow.com/a/32651967/3081018を参照してください。

関連する問題