Я использую httplib для связи с удаленным сервером.
Мой дистрибутив ОС очень старый со старой версией OpenSSL (0.9.8), когда я пытаюсь подключиться, я получаю:
[Errno 104] Connection reset by peer
Я предполагаю, что это происходит из-за того, что на удаленном сервере отключен TLSv1.
Это код:
import ssl
import httplib
conn = httplib.HTTPSConnection("<host>", context=ssl._create_unverified_context())
conn.request("POST", "/api/authentication/v2/simulator/signup")
При просмотре поддерживаемых версий TLS в модуле ssl
:
'PROTOCOL_SSLv23',
'PROTOCOL_SSLv3',
'PROTOCOL_TLS',
'PROTOCOL_TLSv1',
Что я не могу понять, так это то, что из той же версии Python, использующей модуль requests
, соединение работает.
Out[1]: import requests
Out[2]: requests.post("https://<host>", verify=False)
Out[3]: <Response [200]>
Как получается, что он работает с requests
, а не с httplib
?