Как заставить `запросы` использовать другое имя хоста для проверки TLS, чем разрешение DNS? - PullRequest
0 голосов
/ 04 ноября 2019

В домене работает служба, такая как vpc-elasti-xyz.us-east-1.es.amazonaws.com. Он прослушивает обычные HTTPS-соединения и имеет действительный сертификат для этого домена.

Мне нужно приложение Python, использующее модуль requests для безопасного подключения к этой службе, но с другим именем хоста - 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)

Возможные решения, о которых я думал:

  1. Добавление этого имени хостак оригинальным сертификатам службы - к сожалению, это невозможно.
  2. Установка обратного прокси-сервера перед службой и завершение TSL - выполнимо, но я бы хотел по возможности избежать лишних движущихся частей.
  3. Использование записи CNAME для my-search-domain.example.com, которая указывает на vpc-elasti-xyz.us-east-1.es.amazonaws.com. Это не будет работать OOB, так как доменное имя не совпадает, но обходной путь должен был бы получить доменное имя из DNS в моем коде и просто использовать его для прямого подключения. Это то, что у меня есть сейчас, и это работает, но я бы не хотел делать этот «ручной DNS-запрос», если это возможно. Кроме того, на данный момент DNS является просто удобным хранилищем данных - ничем не отличающимся от файла конфигурации или чего-либо еще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...