This question already has answers here:
Why does Python requests ignore the verify parameter?
(3个答案)
4年前关闭。
当我尝试获取使用过时的TLS1.1和urllib3的此站点时,引发此错误:
似乎urllib3尝试与SSL3握手,但是正如我提到的,此站点使用TLS1.1。
我是否必须指定不使用TLS1.1?我该怎么做?
我发现此参数名为
(3个答案)
4年前关闭。
当我尝试获取使用过时的TLS1.1和urllib3的此站点时,引发此错误:
>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'https://site/')
SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:646)
似乎urllib3尝试与SSL3握手,但是正如我提到的,此站点使用TLS1.1。
我是否必须指定不使用TLS1.1?我该怎么做?
我发现此参数名为
ssl_version
(可以在PoolManager构造函数中传递),默认为PROTOCOL_SSLv23
。但是我没有在PROTOCOL_TLSv11
中找到类似urllib3.util.ssl_
的东西。实际上,以PROTOCOL_
开头的唯一var是默认选项。 最佳答案
似乎urllib3尝试与SSL3握手,但是正如我提到的,此站点使用TLS1.1。
该站点仍支持SSL 3.0(也支持TLS 1.0和TLS 1.1),因此我怀疑这是问题所在。我建议问题更多在于服务器仅支持不安全的RC4-SHA密码,该密码不包含在urllib3的默认密码集中。
另请参见Why does Python requests ignore the verify parameter?。
关于python - 使用TLS1.1和urllib3的HTTP GET站点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33266539/
10-12 21:13