2013-04-16 17 views
23

Tôi có một proxy ngược lại thực hiện HTTPS ở bên ngoài, nhưng HTTP ở bên trong.Tiêu chuẩn thực tế cho Proxy ngược lại để cho SSL phụ trợ được sử dụng là gì?

Điều này có nghĩa là theo mặc định, URL trong ứng dụng sẽ có HTTP làm lược đồ vì đây là cách liên hệ với nó.

Làm cách nào để proxy có thể thông báo cho chương trình phụ trợ rằng HTTPS nên được sử dụng?

Trả lời

26

Proxy có thể thêm tiêu đề phụ (hoặc ghi đè) vào các yêu cầu mà nó nhận và chuyển đến phần cuối. Đây có thể được sử dụng để giao tiếp thông tin cho back-end.

Cho đến nay tôi đã nhìn thấy một cặp vợ chồng sử dụng để buộc việc sử dụng https trong thức truy cập URL:

X-Forwarded-Protocol: https 
X-Forwarded-Ssl: on 
X-Url-Scheme: https 

wikipedia cũng đề cập:

# a de facto standard: 
X-Forwarded-Proto: https 
# Non-standard header used by Microsoft applications and load-balancers: 
Front-End-Https: on 

này những gì bạn nên thêm vào VirtualHost trên : các proxy khác cần có chức năng tương tự

RequestHeader set X-FORWARDED-PROTOCOL https 
RequestHeader set X-Forwarded-Ssl on 
# etc. 

Tôi nghĩ tốt nhất là đặt tất cả hoặc thiết lập hoạt động và loại bỏ những ứng dụng đã biết khác. Để ngăn chặn khách hàng xấu xa gây rối với họ.

+2

Đó là X-Forwarded-Proto, không phải X-Forwarded-Protocol, phải không? – mmoya

+2

@mmoya Tôi đã nhìn thấy cả hai. Vị trí thứ hai thậm chí còn thắng trong một [googlebattle] (http://www.googlebattle.com/?domain=x-forwarded-proto&domain2=x-forwarded-protocol&submit=Go%21). –

+6

[RFC 7239: Phần mở rộng HTTP được chuyển tiếp] (https://tools.ietf.org/html/rfc7239) :) – mmoya

Các vấn đề liên quan