title: Why does Requests raise this SSLError when trying to access Twitter's API?
body: <p>I am attempting to use rauth to do oauth with twitter, but it seems to be failing with the following error:</p>
  
  <pre><code>requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
  </code></pre>
  
  <p>After some testing, I find that requests seems to be breaking when attempting to access api.twitter.com and verifying the https connection.  Here is an example, It appears to work for <a href="https://github.com" rel="nofollow">https://github.com</a>, but fails for <a href="https://api.twitter.com" rel="nofollow">https://api.twitter.com</a>:</p>
  
  <pre><code>&gt;&gt;&gt; import requests
  &gt;&gt;&gt; requests.get('https://github.com', verify=True)
  &lt;Response [200]&gt;
  &gt;&gt;&gt; requests.get('https://api.twitter.com/oauth/request_token',verify=True)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "requests/api.py", line 65, in get
      return request('get', url, **kwargs)
    File "requests/safe_mode.py", line 39, in wrapped
      return function(method, url, **kwargs)
    File "requests/api.py", line 51, in request
      return session.request(method=method, url=url, **kwargs)
    File "requests/sessions.py", line 252, in request
      r.send(prefetch=prefetch)
    File "requests/models.py", line 632, in send
      raise SSLError(e)
  requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
  &gt;&gt;&gt; requests.get('https://api.twitter.com',verify=True)
  [SNIP] Same error as above
  </code></pre>
  
  <p><strike>Is this a bug in requests?  This should be similar to what rauth is running, so I am not sure why it is not working on my machine.</strike></p>
  
  <p>With some great disccusion from @thomas-orozco it appears to be an openssl being unable to verify the G2 VeriSign certificate: <a href="http://pastebin.com/ZZj3s5uN" rel="nofollow">http://pastebin.com/ZZj3s5uN</a></p>
  
  <p>It does appear that I have the VeriSign CA by using certool:</p>
  
  <pre><code>certtool y k=/System/Library/Keychains/SystemCACertificates.keychain | grep -i verisign
  </code></pre>
  
  <p>Which is being used by chrome / safari, just not by openssl on the command line.  Is there something that I can do so that Requests will load the right certificate?</p>