![](/img/trans.png)
[英]UnificationEngine: Unable to send Requests via Python using TLS or SSL
[英]SSL and TLS in Python requests
我正在使用python的請求庫,我有一個小問題:我正在連接到一個rest api,在幾天內,這個服務將刪除SSL連接,所以我只能通過TLS連接。
有人知道請求是否允許TLS連接以及如何啟用它?
請求使用Python標准庫ssl模塊 - 這支持各種版本的SSL和TLS。 你可以告訴請求通過創建一個使用特定協議(如使用TLSv1) HTTPAdapter
是定制時生成的PoolManager實例。
我不得不做這樣的事情,但被我們也通過代理服務器事實所init_poolmanager
- 在這種情況下, 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
urllib3有一個拉取請求,為Python 3.2+添加了SNI支持 - 鏈接
希望有所幫助。 如果您需要更多詳細信息,請告訴我們
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.