强制TLS 1.0与请求连接

时间:2018-06-05 19:55:48

标签: python ssl python-requests

我正在尝试使用请求从此website检索网络摄像头快照,但是我收到以下错误:

  

requests.exceptions.SSLError:HTTPSConnectionPool(host ='secure.rcrquebec.com',   port = 443):使用url超出了最大重试次数:/webcams/msa.webcamExpert01/Webcam.jpg(由SSLError引起(SSLError(“坏握手:SysCallError(-1,'Unexpected EOF')”),))) p>

如果我在调试模式下使用谷歌浏览器查看图像/页面,安全概述会告诉我该页面具有有效证书,但使用过时的协议。我的理解是这就是我的SSLError的原因。 Chrome的安全性概述说:

  

此站点的连接使用TLS 1.0(过时的协议),RSA(过时的密钥交换)和3DES_EDE_CBC与HMAC-SHA1(过时的密码)。

所以我试图强制请求使用SSL版本1.0,如here所述,但没有任何成功。

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
import ssl, requests

class MyAdapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
        self.poolmanager = PoolManager(num_pools=connections,
                                       maxsize=maxsize,
                                       block=block,
                                       ssl_version=ssl.PROTOCOL_TLSv1)

s = requests.Session()
s.mount('https://', MyAdapter())
r = s.get('https://secure.rcrquebec.com/webcams/msa.webcamExpert01/Webcam.jpg')

我是否还需要考虑过时的密钥交换和密码?如果是的话怎么样?

0 个答案:

没有答案