Requests use the standard Python ssl library under the hood - this supports various versions of SSL and TLS. You can specify requests to use a specific protocol (for example, TLSv1) by creating an HTTPAdapter that configures the instantiated pool pool instance.
I should have done something similar, but was bitten by the fact that we also went through the proxy - in this case, the init_poolmanager method init_poolmanager not called because it uses the ProxyManager . I used this:
class ForceTLSV1Adapter(adapters.HTTPAdapter): """Require TLSv1 for the connection""" def init_poolmanager(self, connections, maxsize, block=False):
source share