有一个服务在一个域中运行,比如vpc-elasti-xyz.us-east-1.es.amazonaws.com
。它侦听常规HTTPS连接并具有该域的有效证书
我需要一个使用requests
模块的Python应用程序来安全地连接到这个服务,但是要通过一个不同的主机名——例如my-search-domain.example.com
我想知道有没有办法做到这一点:
s = Session()
req = Request('GET', 'my-search-domain.example.com')
prepped = s.prepare_request(req)
# ?????
prepped.expected_host_name = 'vpc-elasti-xyz.us-east-1.es.amazonaws.com'
resp = s.send(prepped)
我想到的可能解决方案:
vpc-elasti-xyz.us-east-1.es.amazonaws.com
的my-search-domain.example.com
的CNAME记录。因为域名不匹配,所以OOB不起作用,但是一个解决方法是在我的代码中从DNS检索域名并直接使用它连接。这就是我现在所拥有的,它的工作,但我不想做的“手动DNS查询”如果可能的话。而且,在这一点上,DNS只是一个方便的数据存储——与配置文件或其他任何东西没有区别李>
默认情况下,请求支持SSL验证。但是,它依赖于用户使用包含主机名的URL发出请求。但是,如果用户需要使用IP地址发出请求,则他们实际上无法根据要请求的主机名验证证书
为了满足这种需要,有
HostHeaderSSLAdapter
。用法示例: 你知道吗https://toolbelt.readthedocs.io/en/latest/adapters.html#hostheaderssladapter
相关问题 更多 >
编程相关推荐