Nginx proxy_pass đến IP nhưng sử dụng HTTPS


2

Tôi có một máy chủ cũ được bảo mật thông qua chứng chỉ SSL cho example.com. Tôi muốn đặt một máy chủ khác trước máy chủ này để proxy_pass giao thông (di sản) nhất định. Máy chủ mới phải được hiển thị trên example.com quá.

Nếu chúng nằm trên các miền riêng biệt ( legacy.example.comexample.com ), Tôi chỉ đơn giản là có thể proxy_pass https://legacy.example.com. Tuy nhiên, ứng dụng cũ bị vấy bẩn example.com URL (và nó chỉ có chứng chỉ SSL cho example.com ). Bất kỳ URL nào khác (ví dụ IP) sẽ chuyển hướng đến example.com.

Những gì tôi muốn làm là proxy_pass <legacy IP>, đặt tiêu đề máy chủ với proxy_set_header Host example.com. Nhưng vấn đề là, điều này không sử dụng HTTPS.

Tôi đã làm điều gì đó một thời gian trước với curl, tôi có thể kết nối với máy chủ bằng IP, nhưng chỉ định tên miền sẽ sử dụng cho chứng chỉ. Mặc dù không có A ghi lại cho example.com ánh xạ tới IP này, tôi có thể lừa nó nghĩ rằng nó đang được kết nối bởi tên miền đó.

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

Có điều gì như thế này ở Nginx không?


Bạn đã thử sử dụng proxy_ssl_name Chỉ thị?
Richard Smith

@RichardSmith Không, nhưng đó chính xác là những gì tôi đang tìm kiếm. Cảm ơn!
Chris Smith

Câu trả lời:


3

Tôi đã không sử dụng nó cho mình, nhưng có vẻ như proxy_ssl_name có thể là những gì bạn đang tìm kiếm:

Ví dụ:

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

Xem tài liệu này để biết chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.