Nginx proxy_pass 到 IP 但使用 HTTPS

Nginx proxy_pass 到 IP 但使用 HTTPS

我有一個透過 SSL 憑證保護的舊伺服器example.com。我想在這台伺服器之前放置另一台伺服器以處理proxy_pass某些(舊版)流量。新伺服器也必須公開example.com

如果這些位於不同的域(legacy.example.comexample.com)上,我就能夠proxy_pass https://legacy.example.com。然而,舊版應用程式充斥著硬編碼的example.comURL(而且它只有 的 SSL 憑證example.com)。任何其他 URL(例如 IP)都將重定向到example.com.

我想要做的是proxy_pass <legacy IP>,設定主機頭proxy_set_header Host example.com。但問題是,這不使用 HTTPS。

我不久前用curl做了一些事情,我能夠透過它的IP連接到伺服器,但指定用於憑證的網域。儘管沒有映射到該 IP 的A記錄example.com,但我還是能夠欺騙它認為它是透過該網域連接的。

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

Nginx中有類似的東西嗎?

答案1

我自己沒有使用過它,但它看起來proxy_ssl_name可能是您正在尋找的:

例如:

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

這個文件了解詳情。

相關內容