2

У меня есть устаревший сервер, который защищен с помощью SSL-сертификата для example.com . Я хочу поставить другой сервер напротив этого для proxy_pass определенного (унаследованного) трафика. Новый сервер также должен быть выставлен на example.com .

Если бы они были на разных доменах (legacy.example.com и example.com), я бы просто смог proxy_pass https://legacy.example.com . Однако унаследованное приложение изобилует жестко закодированными URL-адресами example.com (и оно имеет только сертификат SSL для example.com). Любой другой URL (например, IP-адрес) будет перенаправлен на example.com .

То, что я хочу сделать, это proxy_pass <legacy IP> , установить заголовок узла с помощью proxy_set_header Host example.com . Но проблема в том, что это не использует HTTPS.

Некоторое время назад я сделал что-то с помощью curl, я смог подключиться к серверу по его IP-адресу, но указать домен, который будет использоваться для сертификата. Несмотря на то, что не было записи A для example.com сопоставляющей этот IP, я смог обмануть его, думая, что он связан с этим доменом.

curl https://example.com/path --resolve example.com:<IP>

Есть ли что-то подобное в Nginx?

1 ответ1

3

Я не использовал его сам, но похоже, что proxy_ssl_name может быть тем, что вы ищете:

Например:

proxy_set_header Host example.com;
proxy_ssl_name        example.com;
proxy_pass            https://1.2.3.4;

Смотрите этот документ для деталей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .