Usługa HTTPS na porcie 8443 jest dostępna przez proxy HTTP na porcie 8080. Te liczby opisują różne połączenia:

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

Aplikacja nadal odpowiada za wykonanie, obsługę błędów i cykl życia uchwytu. Fragment kodu trzyma parametry routingu razem, nie zmieniając weryfikacji certyfikatu.

cURL najpierw łączy się z proxy.example:8080. Dla tego celu HTTPS żądanie tunelu wskazuje api.example:8443, a tożsamość TLS pozostaje api.example.

CURLOPT_PORT to nadpisanie portu docelowego, a nie portu proxy. Ustawienie go na 443 za każdym razem, gdy URL zaczyna się od https, może nadpisać usługę celowo hostowaną na 8443. libcurl zaleca wybieranie portu w URL zamiast używania tej opcji.

Przy ponownym użyciu uchwytu uwzględnij także wcześniejsze jawne nadpisanie portu. Nowy URL nie ułatwia interpretacji sprzecznych zachowanych opcji.

Pośrednik musi zezwalać na CONNECT do wybranego portu docelowego. Odmowa dla 8443 nie jest powodem do przenoszenia nasłuchu proxy ani wyłączania walidacji TLS.

Powiązane artykuły