Repository: psf/requests

Issue #5212: URL in readme (https://2.python-requests.org/) is http only
Created: 2019-09-25T00:19:36Z
The URL //2.python-requests.org/ (which is in the readme) automatically resolves to https://2.python-requests.org which is down (there is no HTTPS version of the site). The HTTP version of the site, http://2.python-requests.org, is fine.
Expected Result
I expect that when I click the link in the readme, it goes to a page that exists.
Actual Result
When I click the link in the readme, the // prefix resolves to https://, but there is no HTTPS version of 2.python-requests.org, so the page does not load.
Reproduction Steps
>>> import requests

>>> requests.get('https://2.python-requests.org/')
Traceback (most recent call last):
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 472, in wrap_socket
    cnx.do_handshake()
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/OpenSSL/SSL.py", line 1716, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/OpenSSL/SSL.py", line 1456, in _raise_ssl_error
    _raise_current_error()
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'ssl3_read_bytes', 'tlsv1 alert internal error')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/connectionpool.py", line 344, in _make_request
    self._validate_conn(conn)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/connectionpool.py", line 843, in _validate_conn
    conn.connect()
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/connection.py", line 370, in connect
    ssl_context=context)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 355, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/contrib/pyopenssl.py", line 478, in wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'tlsv1 alert internal error')],)",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/urllib3/util/retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='2.python-requests.org', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'tlsv1 alert internal error')],)",),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/Users/charles/.pyenv/versions/miniconda3-4.3.30/lib/python3.6/site-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='2.python-requests.org', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'tlsv1 alert internal error')],)",),))

>>> requests.get('http://2.python-requests.org/')
<Response [200]>

System Information
N/A

Duplicate issue #5218: sphinx.ext.autodoc intersphinx_mapping for python-requests throws SSLError
Created: 2019-10-01T19:44:00Z
Summary.
Sphinx documentation 'make html' throws warning about https://2.python-requests.org/en/master/objects.inv
Expected Result
Sphinx make can pull the objects.inv without problems
Actual Result
(phsa_venv) phsa@lvmsocq01:~/p_soc_auto/docs$ make html
Running Sphinx v2.1.2
loading pickled environment... done
loading intersphinx inventory from https://2.python-requests.org/en/master/objects.inv...
WARNING: failed to reach any of the inventories with the following issues:
intersphinx inventory 'https://2.python-requests.org/en/master/objects.inv' not fetchable due to <class 'requests.exceptions.SSLError'>: HTTPSConnectionPool(host='2.python-requests.org', port=443): Max retries exceeded with url: /en/master/objects.inv (Caused by SSLError(SSLError(1, '[SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:833)'),))
...
dumping object inventory... done
build succeeded, 2 warnings.

The HTML pages are in build/html.
(phsa_venv) phsa@lvmsocq01:~/p_soc_auto/docs$ 

Reproduction Steps
This is the relevant extract from the Sphinx conf.py file:
extensions = [
    'sphinx.ext.autodoc',
    'IPython.sphinxext.ipython_directive',
    'IPython.sphinxext.ipython_console_highlighting',
    'sphinx.ext.doctest',
    'sphinx.ext.intersphinx',
    'sphinx.ext.viewcode',
    'sphinx.ext.inheritance_diagram',
    'celery.contrib.sphinx',
    'sphinx.ext.autosectionlabel',
    'sphinx.ext.todo',
    'sphinx.ext.autosummary',
    'sphinxcontrib.plantuml',
]

# ...

intersphinx_mapping = {
    'python': ('https://docs.python.org/3', None),
    'django': ('http://docs.djangoproject.com/en/2.2/',
               'http://docs.djangoproject.com/en/2.2/_objects/'),
    'urllib3': ('http://urllib3.readthedocs.org/en/latest', None),
    'requests': ('https://2.python-requests.org/en/master/', None), }
Then run a Sphinx 'make html'
System Information
$ python -m requests.help

(phsa_venv) phsa@lvmsocq01:~/p_soc_auto$ python -m requests.help
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "idna": {
    "version": "2.8"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.5"
  },
  "platform": {
    "release": "3.10.0-862.3.2.el7.x86_64",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.22.0"
  },
  "system_ssl": {
    "version": "100020bf"
  },
  "urllib3": {
    "version": "1.25.3"
  },
  "using_pyopenssl": false
}

Closing comment (2019-10-10T09:53:33Z): Isn't this a duplicate of #5212 ?