Làm cách nào để chuyển tiếp phiên SSL?


1

Giả sử tôi có hai máy cục bộ A và B, và cũng có một máy chủ từ xa C. Ban đầu nếu tôi muốn truy cập một số tài nguyên trên C, tôi có thể sử dụng: https://domain_of_C/some_resources

Bây giờ yêu cầu là trước tiên tôi cần nói chuyện với máy B bằng cách sử dụng: https://IP_address_of_B/some_resourcesvà sau đó máy B phải có khả năng chuyển tiếp yêu cầu đến máy chủ C từ xa và nhận được phản hồi chính xác cho máy A.

Tôi có một câu hỏi là làm thế nào tôi có thể tạo ra máy B để nó đi qua dữ liệu một cách mù quáng, bao gồm cả phiên SSL? Tôi không biết nếu điều này thậm chí có thể.

Câu trả lời:


1

Đây là một tình huống proxy ngược và được hỗ trợ bởi các máy chủ web lớn như nginx, apache và IIS.

Trong mỗi trường hợp này, bạn có thể xác định một đường dẫn như "/ application" - và thay vì tìm trong một thư mục cục bộ tương ứng và gửi một tệp, hoặc gọi một trình thông dịch kịch bản, thay vào đó, nó sẽ nói chuyện với một máy chủ web khác. Sau đó nó sẽ chuyển tiếp trả lời nó nhận được.

Nếu bạn chỉ định một trang web HTTPS, nó sẽ nói chuyện HTTPS với máy chủ web "phụ trợ", như thể đó là một trình duyệt web. Với hầu hết các máy chủ web, bạn có thể kiểm soát các tiêu đề từ yêu cầu "lối vào" được sao chép vào yêu cầu phụ trợ, yêu cầu máy chủ web sửa đổi hoặc lọc chúng hoặc thêm chúng.

A thậm chí sẽ không biết C tồn tại và đây là những gì bạn muốn. Lý tưởng nhất là C chỉ có thể truy cập được vào B và nếu bạn tự tin 100% về điều đó, bạn có thể phân phối với HTTPS giữa B và C để có một chút hiệu suất nếu nó quan trọng với phần cứng và tải của bạn (khi bạn nhận được hàng nghìn yêu cầu mỗi thứ hai nó có thể quan trọng). Nếu máy chủ web "phụ trợ" của bạn thực sự trên cùng một máy hoặc VM và đang nghe trên 127.0.0.1, chẳng hạn, HTTPS có thể là quá mức cần thiết.

Nginx nổi tiếng là nhanh và thường được sử dụng để lưu trữ. Sự kết hợp của Nginx với các đường dẫn ngược được ủy quyền cho một máy chủ web khác như Apache là phổ biến và thường được sử dụng.

Nếu bạn muốn giải thích chi tiết và các ứng dụng web của bạn được thiết kế để hỗ trợ nó, bạn có thể chỉ định nhiều máy chủ web phụ trợ cho một đường dẫn để thực hiện cân bằng tải hoặc chuyển đổi dự phòng.

Cấu hình proxy ngược phụ thuộc vào máy chủ web cụ thể, nhưng phải dễ dàng tìm kiếm bằng "proxy ngược nginx", v.v.


Ngoài ra haproxy. Lưu ý điều này chuyển qua các yêu cầu và phản hồi HTTP (S), có thể có sửa đổi, nhưng không phải là 'phiên SSL' như được yêu cầu: A thấy chứng nhận của B không phải C (mặc dù bạn có thể làm cho chúng giống nhau) và nếu bạn sử dụng các ứng dụng khách B thì sẽ thấy Chứng chỉ và bằng chứng của A nhưng C thì không; tốt nhất là nó thấy dữ liệu chứng chỉ được thêm vào tiêu đề yêu cầu của B và phải tin tưởng B. OTOH nginx và haproxy cũng hỗ trợ chuyển tiếp cấp TCP ('stream' và 'mode tcp', xem nhiều Q trên các ngăn xếp khác nhau), cũng như phiên bản khác nhau của netcat và socat. Cũng ssh đường hầm và stunnel, nhưng những người không cần mã hóa lại.
dave_thndry_085
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.