Port proxy versus port cíle v cURL
Ponechte port služby HTTPS v URL cíle a port prostředníka v URL proxy, aniž byste je přepisovali pomocí CURLOPT_PORT.
Služba HTTPS na portu 8443 je dostupná přes HTTP proxy na portu 8080. Tato čísla popisují různá spojení:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
Aplikace stále řídí provádění, ošetření chyb i životní cyklus handlu. Úryvek drží vstupy směrování pohromadě, aniž by měnil ověřování certifikátu.
cURL se nejprve připojí k proxy.example:8080. Pro tento cíl HTTPS uvede požadavek na tunel api.example:8443 a identita TLS zůstává api.example.
CURLOPT_PORT je přepsání portu cíle, nikoli portu proxy. Nastavení na 443 pokaždé, když URL začíná na https, může přepsat službu záměrně hostovanou na 8443. libcurl doporučuje zvolit port v URL místo použití této volby.
Při opětovném použití handlu počítejte i s dřívějším explicitním přepsáním portu. Nová URL neusnadňuje výklad protichůdných zachovaných voleb.
Prostředník musí povolit CONNECT na zvolený port cíle. Odmítnutí pro 8443 není důvodem přesouvat listener proxy nebo vypínat ověřování TLS.