Nginx proxy_pass zu IP, aber HTTPS verwenden

Nginx proxy_pass zu IP, aber HTTPS verwenden

Ich habe einen Legacy-Server, der über ein SSL-Zertifikat für gesichert ist example.com. Ich möchte einen weiteren Server vor diesen Server stellen, um proxy_passbestimmten (Legacy-)Datenverkehr zu ermöglichen. Der neue Server muss auch auf verfügbar sein example.com.

Wenn diese auf unterschiedlichen Domänen ( legacy.example.comund example.com) wären, könnte ich einfach proxy_pass https://legacy.example.com. Die alte App ist jedoch voll mit fest codierten example.comURLs (und sie hat nur ein SSL-Zertifikat für example.com). Jede andere URL (z. B. die IP) wird zu weitergeleitet example.com.

Ich möchte proxy_pass <legacy IP>den Hostheader mit festlegen proxy_set_header Host example.com. Das Problem ist jedoch, dass hierbei kein HTTPS verwendet wird.

Ich habe vor einiger Zeit etwas mit curl gemacht. Ich konnte mich über die IP-Adresse mit einem Server verbinden, aber die für das Zertifikat zu verwendende Domäne angeben. Obwohl es keinen AEintrag für example.comdie Zuordnung zu dieser IP-Adresse gab, konnte ich es so austricksen, dass es dachte, es sei über diese Domäne verbunden.

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

Gibt es so etwas in Nginx?

Antwort1

Ich habe es selbst nicht verwendet, aber es sieht so aus, als proxy_ssl_nameob es das ist, wonach Sie suchen:

Zum Beispiel:

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

Sehendieses Dokumentfür Details.

verwandte Informationen