파이썬 요청 라이브러리를 사용하고 있는데 약간의 문제가 있습니다. 나머지 API에 연결하고 있으며 며칠 후이 서비스가 SSL 연결을 삭제합니다. TLS를 통해서만 연결할 수 있습니다.Python 요청의 SSL 및 TLS
요청에 TLS 연결을 허용하고이를 활성화하는 방법을 알고있는 사람이 있습니까?
파이썬 요청 라이브러리를 사용하고 있는데 약간의 문제가 있습니다. 나머지 API에 연결하고 있으며 며칠 후이 서비스가 SSL 연결을 삭제합니다. TLS를 통해서만 연결할 수 있습니다.Python 요청의 SSL 및 TLS
요청에 TLS 연결을 허용하고이를 활성화하는 방법을 알고있는 사람이 있습니까?
요청은 Python 표준 라이브러리 ssl 모듈을 사용합니다.이 모듈은 다양한 버전의 SSL과 TLS를 지원합니다. 생성 된 PoolManager 인스턴스를 사용자 지정하는 HTTPAdapter
을 작성하여 TLSv1과 같은 특정 프로토콜을 사용하라는 요청을 알릴 수 있습니다.
나는 이런 식으로해야만했지만, 우리는 또한 프록시를 통해 갔다는 사실에 물 렸습니다. init_poolmanager
메서드가 호출되지 않았는데, 대신 ProxyManager
을 사용하기 때문입니다. 나는 이것을 사용했다 :
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)
몇 가지 도움이되는 링크.
https://github.com/kennethreitz/requests/blob/master/requests/packages/urllib3/contrib/pyopenssl.py
https://github.com/kennethreitz/requests/issues/749#issuecomment-19187417
파이썬 3.2 이상에 대한 SNI 지원을 추가 urllib3위한 풀 요청이있다 - link
희망이 있습니다. 더 자세한 정보가 필요하면 알려주십시오.
귀하의 Python 버전은 무엇입니까? 이 [SO Q & A] (http://stackoverflow.com/questions/18578439/using-requests-with-tls-doesnt-give-sni-support)에서 통찰력을 얻을 수 있습니다. – Anzel
... 그리고 어떤 버전의 ssl 라이브러리를 사용하고 있습니까? –