Ignoring SSL errors with Session obejcts

When using a Session object the 'verify=False' option fails to ignore bad SSL:

> > > r = requests.get("https://site.com/blah", verify=False) #Works 
> > > 
> > > s = requests.Session()
> > > s.get('https://site.com/blah', verify=False) #Fails
> > > requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

However, this works:

> > > s = requests.Session()
> > > s.verify = False
> > > s.get('https://site.com/blah')

Request-level parameters should override session parameters.


## What version of requests are you using? 

Sent from my Android device with K-9 Mail. Please excuse my brevity.


requests==2.4.1


I have reproduced it with requests==2.4.3, as expected:

```
>>> import requests
>>> r = requests.get('https://my_wrong_cert/', verify=False)
>>> r.status_code
200
>>> s = requests.Session()
>>> s.verify = False
>>> s.get('https://my_wrong_cert/')
<Response [200]>
```

But the next one has failed:

```
>>> s = requests.Session()
>>> s.get('https://my_wrong_cert', verify=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/raulcd/Envs/tests/lib/python2.7/site-packages/requests/sessions.py", line 469, in get
    return self.request('GET', url, **kwargs)
  File "/Users/raulcd/Envs/tests/lib/python2.7/site-packages/requests/sessions.py", line 457, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/raulcd/Envs/tests/lib/python2.7/site-packages/requests/sessions.py", line 569, in send
    r = adapter.send(request, **kwargs)
  File "/Users/raulcd/Envs/tests/lib/python2.7/site-packages/requests/adapters.py", line 420, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
```

I'll start working on a patch and I will submit it.


I've been able to reproduce the behavior with two tests, the problem is not with the:

```
s.get('https://my_wrong_cert', verify=False)
```

the problem is if you are reusing the session when a SSLError has been previously raised.
The test below `test_wrong_session_certificate` works as expected, but the test `test_session_certificate_fail()` fails on the second attempt as the session has already failed with the validation of the SSL certificate.

```
def test_wrong_session_certificate():
    s = requests.Session()
    r = s.get('https://my_wrong_cert', verify=False)
    assert r.status_code==200

def test_session_certificate_fail():
    s = requests.Session()
    with pytest.raises(SSLError):
        s.get('https://my_wrong_cert')
    r = s.get('https://my_wrong_cert', verify=False) #  -> This line fails due to a SSLError
    assert r.status_code==200, 'The error code is not the expected one'
```


The issue is with urllib3:

When calling to urllib3 with the adapter we set the:
`>>>> conn.cert_reqs
'CERT_NONE'`
but inside urllib3:

```
> /Users/raulcd/Projects/requests/requests/packages/urllib3/connectionpool.py(511)urlopen()
    510             # Request a connection from the queue.
--> 511             conn = self._get_conn(timeout=pool_timeout)
    512

ipdb> self.cert_reqs
'CERT_NONE'
ipdb> n
ipdb> conn.cert_reqs
'CERT_REQUIRED'
```

So the requests should have `CERT_NONE` but the connection retrieved from the connection pool has `CERT_REQUIRED`.


I think this issue should be closed as I opened the issue with urllib3 (where it belongs).


@raulcd I agree.