SSLError when requests deportesweb.madrid.es

`ssl.SSLEOFError: EOF occurred in violation of protocol `  when requests `deportesweb.madrid.es` 

## Reproduction Steps

```console
Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> s = requests.Session()
>>> s.get("https://deportesweb.madrid.es/deportesWeb/Login", verify=False)
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen
    body=body, headers=headers)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 787, in _validate_conn
    conn.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 252, in connect
    ssl_version=resolved_ssl_version)
  File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 305, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
    _context=self)
  File "/usr/lib/python3.5/ssl.py", line 752, in __init__
    self.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 589, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:645)
```

## System Information

```
$ python3 -m requests.help
/usr/bin/python3: No module named requests.help
$ python3 --version
Python 3.5.2
$ python3 -c "import requests; print (requests.__version__)"
2.9.1
$ uname -a
Linux yamato 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
```

https://www.ssllabs.com/ssltest/analyze.html?d=deportesweb.madrid.es&hideResults=on

## Second try

```console
$ sudo pip3 install -U requests
Collecting requests
  Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
    100% |████████████████████████████████| 92kB 270kB/s 
Collecting urllib3<1.23,>=1.21.1 (from requests)
  Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
    100% |████████████████████████████████| 133kB 193kB/s 
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 305kB/s 
Collecting idna<2.7,>=2.5 (from requests)
  Downloading idna-2.6-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 562kB/s 
Collecting certifi>=2017.4.17 (from requests)
  Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)
    100% |████████████████████████████████| 337kB 93kB/s 
Installing collected packages: urllib3, chardet, idna, certifi, requests
  Found existing installation: urllib3 1.13.1
    Uninstalling urllib3-1.13.1:
      Successfully uninstalled urllib3-1.13.1
  Found existing installation: chardet 2.3.0
    Uninstalling chardet-2.3.0:
      Successfully uninstalled chardet-2.3.0
  Found existing installation: idna 2.0
    Uninstalling idna-2.0:
      Successfully uninstalled idna-2.0
  Found existing installation: requests 2.9.1
    Uninstalling requests-2.9.1:
      Successfully uninstalled requests-2.9.1
Successfully installed certifi-2017.11.5 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22
 $ python3 -c "import requests; print (requests.__version__)"
2.18.4
$ python3 -m requests.help
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "idna": {
    "version": "2.6"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.5.2"
  },
  "platform": {
    "release": "4.4.0-53-generic",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.18.4"
  },
  "system_ssl": {
    "version": "1000207f"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": false
}
$ python3
Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> s = requests.Session()
>>> s.get("https://deportesweb.madrid.es/deportesWeb/Login", verify=False)
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
    _context=self)
  File "/usr/lib/python3.5/ssl.py", line 752, in __init__
    self.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:645)'),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:645)'),))
```

## Third try

```console
$ sudo pip3 install -U pyopenssl
Collecting pyopenssl
  Downloading pyOpenSSL-17.3.0-py2.py3-none-any.whl (51kB)
    100% |████████████████████████████████| 51kB 1.1MB/s 
Collecting cryptography>=1.9 (from pyopenssl)
  Downloading cryptography-2.1.3-cp35-cp35m-manylinux1_x86_64.whl (2.2MB)
    100% |████████████████████████████████| 2.2MB 242kB/s 
Collecting six>=1.5.2 (from pyopenssl)
  Downloading six-1.11.0-py2.py3-none-any.whl
Collecting cffi>=1.7; platform_python_implementation != "PyPy" (from cryptography>=1.9->pyopenssl)
  Downloading cffi-1.11.2-cp35-cp35m-manylinux1_x86_64.whl (419kB)
    100% |████████████████████████████████| 419kB 1.3MB/s 
Collecting asn1crypto>=0.21.0 (from cryptography>=1.9->pyopenssl)
  Downloading asn1crypto-0.23.0-py2.py3-none-any.whl (99kB)
    100% |████████████████████████████████| 102kB 3.7MB/s 
Requirement already up-to-date: idna>=2.1 in /usr/local/lib/python3.5/dist-packages (from cryptography>=1.9->pyopenssl)
Collecting pycparser (from cffi>=1.7; platform_python_implementation != "PyPy"->cryptography>=1.9->pyopenssl)
  Downloading pycparser-2.18.tar.gz (245kB)
    100% |████████████████████████████████| 256kB 1.6MB/s 
Installing collected packages: six, pycparser, cffi, asn1crypto, cryptography, pyopenssl
  Found existing installation: six 1.10.0
    Uninstalling six-1.10.0:
      Successfully uninstalled six-1.10.0
  Running setup.py install for pycparser ... done
  Found existing installation: cryptography 1.2.3
    Uninstalling cryptography-1.2.3:
      Successfully uninstalled cryptography-1.2.3
Successfully installed asn1crypto-0.23.0 cffi-1.11.2 cryptography-2.1.3 pycparser-2.18 pyopenssl-17.3.0 six-1.11.0
$ python3
Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> s = requests.Session()
>>> s.get("https://deportesweb.madrid.es/deportesWeb/Login", verify=False)
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/contrib/pyopenssl.py", line 441, in wrap_socket
    cnx.do_handshake()
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 1716, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 1449, in _raise_ssl_error
    raise SysCallError(-1, "Unexpected EOF")
OpenSSL.SSL.SysCallError: (-1, 'Unexpected EOF')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/contrib/pyopenssl.py", line 448, in wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))
```

It's an error on `deportesweb.madrid.es` side.

```
$  wget https://deportesweb.madrid.es/deportesWeb/Login

--2017-11-07 09:20:51--  https://deportesweb.madrid.es/deportesWeb/Login
Resolving deportesweb.madrid.es... 195.55.79.160
Connecting to deportesweb.madrid.es|195.55.79.160|:443... connected.
Unable to establish SSL connection.
```

Yes, but it is becouse you are trying validate the certificate, and I didn't that becouse I'm using `verify=False`.

So the equivalent in wget would be:

````console
wget https://deportesweb.madrid.es/deportesWeb/Login --no-check-certificate
--2017-11-07 11:02:55--  https://deportesweb.madrid.es/deportesWeb/Login
Resolving *** my proxy ***
Connecting to *** my proxy ***|:8080... connected.
WARNING: cannot verify deportesweb.madrid.es's certificate, issued by `/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G3':
  Unable to locally verify the issuer's authority.
Proxy request sent, awaiting response... 200 OK
Length: 10058 (9.8K) [text/html]
Saving to: `Login'

100%[====================================================================================================================================>] 10,058      --.-K/s   in 0s

2017-11-07 11:02:55 (91.9 MB/s) - `Login' saved [10058/10058]
````

What if you don't use a proxy? It still does not work here even with `--no-check-certificate`
```
$ wget --no-check-certificate https://deportesweb.madrid.es/deportesWeb/Login
--2017-11-07 11:47:10--  https://deportesweb.madrid.es/deportesWeb/Login
Resolving deportesweb.madrid.es... 195.55.79.160
Connecting to deportesweb.madrid.es|195.55.79.160|:443... connected.
Unable to establish SSL connection.
```

Without proxy:

````console
$ wget --no-check-certificate https://deportesweb.madrid.es/deportesWeb/Login
converted 'https://deportesweb.madrid.es/deportesWeb/Login' (ANSI_X3.4-1968) -> 'https://deportesweb.madrid.es/deportesWeb/Login' (UTF-8)
--2017-11-07 11:58:50--  https://deportesweb.madrid.es/deportesWeb/Login
Resolving deportesweb.madrid.es (deportesweb.madrid.es)... 195.55.79.160
Connecting to deportesweb.madrid.es (deportesweb.madrid.es)|195.55.79.160|:443... connected.
WARNING: The certificate of 'deportesweb.madrid.es' is not trusted.
WARNING: The certificate of 'deportesweb.madrid.es' hasn't got a known issuer.
HTTP request sent, awaiting response... 200 OK
Length: 10058 (9.8K) [text/html]
Saving to: 'Login.1'

Login.1                              100%[=====================================================================>]   9.82K  --.-KB/s   in 0.001s

2017-11-07 11:58:52 (10.5 MB/s) - 'Login.1' saved [10058/10058]
````

I have tried that https://lukasa.co.uk/2017/02/Configuring_TLS_With_Requests/ from @Lukasa  but it isn't worked.
I think my issue is the same at https://github.com/requests/requests/issues/3833 and https://github.com/requests/requests/issues/3774 but I don't know why can't do work the same solution.

```python
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.ssl_ import create_urllib3_context

CIPHERS = (
    'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
    'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:'
    '!eNULL:!MD5'
)

class DESAdapter(HTTPAdapter):
    def init_poolmanager(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
    def proxy_manager_for(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)

s = requests.Session()
s.mount('https://deportesweb.madrid.es', DESAdapter())
r = s.get('https://deportesweb.madrid.es/deportesWeb/Login', verify=False)
print (r.text)
```
=
```console
$ python3 ej.py 
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/contrib/pyopenssl.py", line 441, in wrap_socket
    cnx.do_handshake()
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 1716, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 1449, in _raise_ssl_error
    raise SysCallError(-1, "Unexpected EOF")
OpenSSL.SSL.SysCallError: (-1, 'Unexpected EOF')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 850, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connection.py", line 326, in connect
    ssl_context=context)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/ssl_.py", line 329, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/contrib/pyopenssl.py", line 448, in wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "ej.py", line 23, in <module>
    r = s.get('https://deportesweb.madrid.es/deportesWeb/Login', verify=False)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='deportesweb.madrid.es', port=443): Max retries exceeded with url: /deportesWeb/Login (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))
```

This server is a complete tire fire, and the humane thing would be to have it taken out the back and put down. In this case it seems to be seeing cipher suites it doesn't recognise and literally shutting the handshake down, instead of selecting the one it knows it can handle. This is awful behaviour.

Regardless, you can fix it by tweaking `CIPHERS` in your code to just be `'RSA+3DES:!aNULL:!eNULL:!MD5'`. This is a godawful configuration, but it'll work.

Thanks, but with:
```python
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.ssl_ import create_urllib3_context
import ssl

CIPHERS = 'RSA+3DES:!aNULL:!eNULL:!MD5'

class DESAdapter(HTTPAdapter):
    def init_poolmanager(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
        
    def proxy_manager_for(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)

s = requests.Session()
s.mount('https://deportesweb.madrid.es', DESAdapter())
r = s.get('https://deportesweb.madrid.es/deportesWeb/Login', verify=False)
print (r.text)
```
I get:

```console
$ python3 ej.py 
Traceback (most recent call last):
  File "ej.py", line 20, in <module>
    s.mount('https://deportesweb.madrid.es', DESAdapter())
  File "/usr/local/lib/python3.5/dist-packages/requests/adapters.py", line 126, in __init__
    self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)
  File "ej.py", line 10, in init_poolmanager
    context = create_urllib3_context(ciphers=CIPHERS)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/util/ssl_.py", line 272, in create_urllib3_context
    context.set_ciphers(ciphers or DEFAULT_CIPHERS)
  File "/usr/local/lib/python3.5/dist-packages/urllib3/contrib/pyopenssl.py", line 409, in set_ciphers
    self._ctx.set_cipher_list(ciphers)
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 1051, in set_cipher_list
    _lib.SSL_CTX_set_cipher_list(self._context, cipher_list) == 1
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/_util.py", line 67, in openssl_assert
    exception_from_error_queue(error)
  File "/usr/local/lib/python3.5/dist-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'SSL_CTX_set_cipher_list', 'no cipher match')]
```

What's the output of running this shell command: `openssl ciphers RSA+3DES:!aNULL:!eNULL:!MD5`

```console
$ openssl ciphers RSA+3DES:\!aNULL:\!eNULL:\!MD5
DES-CBC3-SHA
```

Hrm. Is that the same OpenSSL your Python is compiled against?

I think so:

```console
$ python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 1.0.2g  1 Mar 2016
$ openssl version
OpenSSL 1.0.2g  1 Mar 2016
```
but I have checked the code in other computer and works, so it is sure that the problem is my local configuration.

That's very perplexing. The cipher suite string appears to work fine for the command line, but for some reason the Python code is rejecting it: I have no idea why.

What is the openssl version on the other (EDIT: where it's working) computer?

In where it's working:
````console
$ python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 1.0.1t  3 May 2016
$ openssl version
OpenSSL 1.0.1t  3 May 2016
````