Из командной строки я могу успешно выполнить команду следующим образом:
curl --cacert <cacert> --cert <cert> --connect-to ::1.2.3.4: https://some-identity.com:443/endpoint
Я делаю это так, чтобы запрос заканчивался переходом на адрес 1.2.3.4
(с точки зрения маршрутизации), но все рукопожатие SSL происходит с использованием адреса some-identity.com
.Я должен сделать это, потому что, к сожалению, используемые сертификаты SSL подписываются с использованием адреса some-identity.com
, но частный IP-адрес сервера 1.2.3.4
.
Я пытаюсь использовать либо aiohttp
(предпочтительно) или requests
, но я не могу найти соответствующие утилиты для этого.
В aiohttp
я вижу, что могу передать SSLContext
(в пакете ssl
)объект, но, к сожалению, я не могу найти какое-либо свойство в объекте SSLContext
, которое может быть установлено динамически.
Для библиотеки requests
у меня, похоже, нет возможности переопределить / изменить хост, как я это делал, используя curl
.
Есть ли другой путь?об этом через библиотеки Python?Последний вариант - просто использовать саму команду curl
через Python, но это не является предпочтительным.