Một dịch vụ HTTPS trên cổng 8443 có thể được truy cập qua proxy HTTP trên cổng 8080. Những con số đó mô tả các kết nối khác nhau:

$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);

Ứng dụng vẫn chịu trách nhiệm về việc thực thi, xử lý lỗi và vòng đời của handle. Đoạn mã giữ các đầu vào định tuyến lại với nhau mà không thay đổi việc xác minh chứng chỉ.

cURL kết nối trước với proxy.example:8080. Với đích HTTPS này, yêu cầu đường hầm nêu api.example:8443, và danh tính TLS vẫn là api.example.

CURLOPT_PORT là ghi đè cổng đích, không phải cổng của proxy. Đặt nó thành 443 mỗi khi URL bắt đầu bằng https có thể ghi đè một dịch vụ được lưu trữ có chủ đích trên 8443. libcurl khuyên chọn cổng trong URL thay vì dùng tùy chọn đó.

Khi dùng lại handle, hãy tính đến cả việc ghi đè cổng rõ ràng trước đó. URL mới không làm cho các tùy chọn còn lại mâu thuẫn dễ diễn giải hơn.

Bên trung gian phải cho phép CONNECT tới cổng đích đã chọn. Việc từ chối 8443 không phải lý do để di chuyển trình lắng nghe proxy hay tắt xác minh TLS.

Bài viết liên quan