簡體   English   中英

Python請求中的SSL和TLS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM