Skip to content

Commit fd30c4e

Browse files
authored
Explicitly load default certificates when creating SSL context (#1583) (#1596)
* Explicitly load default certificates when creating SSL context (#1583) Requests prior to 2.32.3 always loaded the default (system-wide) set of trusted certificates into custom SSL contexts. 2.32.3 no longer does. This has broken a lot of users, but the fix is moving slowly upstream due to security considerations - see psf/requests#6730 and psf/requests#6731 . As suggested at psf/requests#6710 (comment) this can be worked around by explicitly loading the default certificates into the context. We check the method exists before calling it just to be safe, it was added in Python 3.4. Signed-off-by: Adam Williamson <[email protected]> * Drop the upper bound on the requests dependency again As we can now work with requests 2.32.3+, we no longer need this pin. Signed-off-by: Adam Williamson <[email protected]> --------- Signed-off-by: Adam Williamson <[email protected]>
1 parent cee82c8 commit fd30c4e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

httpie/ssl_.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ def __init__(
4848
ssl_version=ssl_version,
4949
ciphers=ciphers,
5050
)
51+
# workaround for a bug in requests 2.32.3, see:
52+
# https://github.com/httpie/cli/issues/1583
53+
if getattr(self._ssl_context, 'load_default_certs', None) is not None:
54+
# if load_default_certs is present, get_ca_certs must be
55+
# also, no need for another getattr
56+
if not self._ssl_context.get_ca_certs():
57+
self._ssl_context.load_default_certs()
5158
super().__init__(**kwargs)
5259

5360
def init_poolmanager(self, *args, **kwargs):

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ install_requires =
5050
pip
5151
charset_normalizer>=2.0.0
5252
defusedxml>=0.6.0
53-
requests[socks] >=2.22.0, <=2.31.0
53+
requests[socks] >=2.22.0
5454
Pygments>=2.5.2
5555
requests-toolbelt>=0.9.1
5656
multidict>=4.7.0

0 commit comments

Comments
 (0)