Chúng tôi có sẵn haproxy để thực hiện TLS hai chiều (tương hỗ) cho các kết nối TCP thông qua proxy SOCKS. Đây là thiết lập:
máy khách -> haproxy -> vớ proxy (cổng) -> Internet -> máy chủ
Đây là cấu hình haproxy:
toàn cầu
log định dạng thiết bị xuất chuẩn iso local7 gỡ lỗi
mặc định
đăng nhập toàn cầu
chế độ tcp
tùy chọn tcplog
maxconn10
hết thời gian kết nối 5000
khách hàng hết thời gian chờ 50000
máy chủ hết thời gian chờ 50000
tùy chọn kiểm tra tcp
nghe ssl-over-socks-1080
liên kết 0.0.0.0:1080
máy chủ ssl_over_socks example.com:10000 ssl crt /cert/client.pem ca-file /cert/server.pem xác minh vớ cần thiết4 1.2.3.4:1080 kiểm tra inter 30000 fastinter 1000
Thiết lập này hoạt động tốt cho TCP+TLS qua proxy SOCKS.
Bây giờ chúng tôi muốn định cấu hình haproxy để thực hiện HTTP + TLS qua proxy HTTP:
máy khách -> haproxy -> proxy http (cổng) -> Internet -> máy chủ
Cấu hình hiện tại trông như thế này:
toàn cầu
log định dạng thiết bị xuất chuẩn iso local7 gỡ lỗi
mặc định
đăng nhập toàn cầu
chế độ http
tùy chọn httplog
maxconn10
hết thời gian kết nối 5000
khách hàng hết thời gian chờ 50000
máy chủ hết thời gian chờ 50000
tùy chọn kiểm tra tcp
nghe ssl-over-proxy-1080
liên kết 0.0.0.0:1080
máy chủ ssl_over_http example.com:20000 ssl crt /cert/client.pem ca-file /cert/server.pem xác minh vớ4 1.2.3.4:8080 kiểm tra check-via-socks4 inter 30000 fastinter 1000
Chúng tôi nhận được đầu ra sau từ haproxy:
Máy chủ ssl-over-proxy-1080/ssl_over_http bị XUỐNG, lý do: Phản hồi không hợp lệ của Lớp 6, thông tin: "Proxy SOCKS4 từ chối yêu cầu ở bước kết nối ban đầu của kiểm tra tcp", thời lượng kiểm tra: 3ms. 0 máy chủ đang hoạt động và 0 máy chủ dự phòng còn lại. 0 phiên hoạt động, 0 phiên được yêu cầu, 0 phiên còn lại trong hàng đợi.
Tôi thấy rằng thông số vớ4 trong cấu hình có thể bị sai. Tuy nhiên, tôi không thể tìm thấy thông số vớ4 tương đương cho các kết nối HTTP trong tài liệu haproxy.
Với Apache httpd, chúng ta có thể cấu hình như sau:
ProxyRemote "*" https://1.2.3.4:8080
ProxyPass / https://example.com:20000
Làm cách nào chúng tôi có thể định cấu hình haproxy để chuyển yêu cầu http qua một proxy http khác?