在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)
我考虑过的可能解决方案:
- 将该主机名添加到原始服务的证书中-很遗憾,这是不可能的。
- 在服务之前放置一个反向代理并执行TSL终止-可以,但是我希望尽可能避免多余的移动。
- 使用
my-search-domain.example.com
的CNAME记录指向vpc-elasti-xyz.us-east-1.es.amazonaws.com
。由于域名不匹配,OOB不能正常工作,但是一种解决方法是从我的代码中的DNS中检索域名,然后直接使用该域名进行连接。这就是我现在拥有的并且可以使用,但是如果可能的话,我不想执行该“手动DNS查询”。而且,此时DNS只是一个方便的数据存储-与配置文件或其他任何内容都没有区别。