title: Pip SSL Error on Windows
body: <p>I use Python 3.x on Windows 7 64 bit in an environment without full control of inbound/outbound traffic processing. Up till this week I've been able to use the <code>--trusted-host pypi.python.org</code> flag with pip and everything worked. This week I have started getting the following error even with the <code>--trusted-host</code> flag.</p>
  
  <pre><code>Could not fetch URL https://pypi.python.org/simple/pytubes/: There was a probl
  em confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
  verify failed (_ssl.c:720) - skipping
  </code></pre>
  
  <p>I tried changing the <code>--trusted-host</code> flag to <code>https://files.pythonhosted.org/packages/</code> in light of the pypi change this week, but that didn't seem to help.</p>
  
  <p>I also tried downloading and installing the wheels of certifi, wincerstore and win32 certifi as well as other stackoverflow suggestions for this kind of issue such as the digistore .pem cert and pip.ini file without any success. </p>
  
  <p><a href="https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi/27623172">pip install fails with &quot;connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)&quot;</a></p>
  
  <p>Finally I tried upgrading pip to pip 10 from pip 9.0.3 following the instructions here: <a href="https://pip.pypa.io/en/stable/installing/" rel="noreferrer">https://pip.pypa.io/en/stable/installing/</a></p>
  
  <p>For the curl download I had to pass <code>-k</code> in, and running <code>python get-pip.py</code> fails with a similar ssl error to pip:</p>
  
  <pre><code> Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),)': /simple/pip/
    Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),)) - skipping
    Could not find a version that satisfies the requirement pip (from versions: )
  No matching distribution found for pip
  Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),)) - skipping
  </code></pre>
  
  <p>Appreciate any suggestions for next steps since the .pem file, Python CA packages and <code>--trusted-host</code> flag didn't do the trick</p>
  
  <p>Edit:</p>
  
  <p>New output with the -vvv flag in pip from an answer below.</p>
  
  <pre><code> &gt; pip install pytubes -vvv
  Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  Collecting pytubes
    1 location(s) to search for versions of pytubes:
    * https://pypi.python.org/simple/pytubes/
    Getting page https://pypi.python.org/simple/pytubes/
    Looking up "https://pypi.python.org/simple/pytubes/" in the cache
    No cache entry available
    Starting new HTTPS connection (1): pypi.python.org
    Could not fetch URL https://pypi.python.org/simple/pytubes/: There was a probl
  em confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate
  verify failed (_ssl.c:749) - skipping
    Could not find a version that satisfies the requirement pytubes (from versions
  : )
  Cleaning up...
  No matching distribution found for pytubes
  Exception information:
  Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\basecommand.py", line 215
  , in main
      status = self.run(options, args)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\commands\install.py", lin
  e 335, in run
      wb.build(autobuilding=True)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\wheel.py", line 749, in b
  uild
      self.requirement_set.prepare_files(self.finder)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\req\req_set.py", line 380
  , in prepare_files
      ignore_dependencies=self.ignore_dependencies))
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\req\req_set.py", line 554
  , in _prepare_file
      require_hashes
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\req\req_install.py", line
   278, in populate_link
      self.link = finder.find_requirement(self, upgrade)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\index.py", line 514, in f
  ind_requirement
      'No matching distribution found for %s' % req
  pip.exceptions.DistributionNotFound: No matching distribution found for pytubes
  Looking up "https://pypi.python.org/pypi/pip/json" in the cache
  No cache entry available
  Starting new HTTPS connection (1): pypi.python.org
  There was an error checking the latest version of pip
  Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\connectionpool.py", line 595, in urlopen
      chunked=chunked)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\connectionpool.py", line 352, in _make_request
      self._validate_conn(conn)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\connectionpool.py", line 831, in _validate_conn
      conn.connect()
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\connection.py", line 289, in connect
      ssl_version=resolved_ssl_version)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\util\ssl_.py", line 308, in ssl_wrap_socket
      return context.wrap_socket(sock, server_hostname=server_hostname)
    File "C:\ProgramData\Anaconda3\lib\ssl.py", line 401, in wrap_socket
      _context=self, _session=session)
    File "C:\ProgramData\Anaconda3\lib\ssl.py", line 808, in __init__
      self.do_handshake()
    File "C:\ProgramData\Anaconda3\lib\ssl.py", line 1061, in do_handshake
      self._sslobj.do_handshake()
    File "C:\ProgramData\Anaconda3\lib\ssl.py", line 683, in do_handshake
      self._sslobj.do_handshake()
  ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c
  :749)
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\adapters
  .py", line 423, in send
      timeout=timeout
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\packages
  \urllib3\connectionpool.py", line 621, in urlopen
      raise SSLError(e)
  pip._vendor.requests.packages.urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VER
  IFY_FAILED] certificate verify failed (_ssl.c:749)
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\utils\outdated.py", line
  126, in pip_version_check
      headers={"Accept": "application/json"},
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\sessions
  .py", line 488, in get
      return self.request('GET', url, **kwargs)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\download.py", line 386, i
  n request
      return super(PipSession, self).request(method, url, *args, **kwargs)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\sessions
  .py", line 475, in request
      resp = self.send(prep, **send_kwargs)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\sessions
  .py", line 596, in send
      r = adapter.send(request, **kwargs)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\cachecontrol\adap
  ter.py", line 47, in send
      resp = super(CacheControlAdapter, self).send(request, **kw)
    File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_vendor\requests\adapters
  .py", line 497, in send
      raise SSLError(e, request=request)
  pip._vendor.requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certi
  ficate verify failed (_ssl.c:749)
  </code></pre>