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_pass
bestimmten (Legacy-)Datenverkehr zu ermöglichen. Der neue Server muss auch auf verfügbar sein example.com
.
Wenn diese auf unterschiedlichen Domänen ( legacy.example.com
und example.com
) wären, könnte ich einfach proxy_pass https://legacy.example.com
. Die alte App ist jedoch voll mit fest codierten example.com
URLs (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 A
Eintrag für example.com
die 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_name
ob 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.