Żądania używa modułu biblioteki standardowej Python ssl pod maską - obsługa różnych wersji SSL i TLS. Można żądać żądań użycia określonego protokołu (takiego jak TLSv1), tworząc HTTPAdapter
dostosowujący instancję PoolManager, która zostanie utworzona.
Musiałem zrobić coś takiego, ale zostałem ugryziony przez fakt, że również przechodzimy przez proxy - w tym przypadku metoda init_poolmanager
nie jest wywoływana, ponieważ używa zamiast tego ProxyManager
. Użyłem tego:
class ForceTLSV1Adapter(adapters.HTTPAdapter):
"""Require TLSv1 for the connection"""
def init_poolmanager(self, connections, maxsize, block=False):
# This method gets called when there's no proxy.
self.poolmanager = poolmanager.PoolManager(
num_pools=connections,
maxsize=maxsize,
block=block,
ssl_version=ssl.PROTOCOL_TLSv1,
)
def proxy_manager_for(self, proxy, **proxy_kwargs):
# This method is called when there is a proxy.
proxy_kwargs['ssl_version'] = ssl.PROTOCOL_TLSv1
return super(ForceTLSV1Adapter, self).proxy_manager_for(proxy, **proxy_kwargs)
jaka jest twoja wersja Pythona? To [Pytanie i odpowiedź] (http://stackoverflow.com/questions/18578439/using-requests-with-tls-doesnt-give-sni-support) może dać ci pewien wgląd. – Anzel
... i jakiej biblioteki ssl w jakiej wersji używasz? –