从命令行中,我能够成功执行以下命令:
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
地址进行。我必须这样做,因为不幸的是,正在使用的some-identity.com
地址对使用中的SSL证书进行了签名,但是服务器的专用IP是1.2.3.4
。
我正在尝试使用aiohttp
(最好是)或requests
,但是我找不到相应的实用程序来做到这一点。
在aiohttp
中,我看到我可以传递SSLContext
(在ssl
包中)对象,但是不幸的是,我似乎无法在{可以动态设置的{1}}对象。
对于SSLContext
库,似乎没有像我使用requests
那样覆盖/更改主机的选项。
是否还有另一种方法可以通过Python库进行此操作?最后一个放弃的选择是通过Python本身简单地使用curl
命令,但这不是首选。