Port del proxy i port de destinació a cURL
Mantingueu el port d'un servei HTTPS a l'URL de destinació i el port de l'intermediari a l'URL del proxy, sense sobreescriure'ls amb CURLOPT_PORT.
Un servei HTTPS al port 8443 es pot assolir a través d'un proxy HTTP al port 8080. Aquests números descriuen connexions diferents:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
L'aplicació continua encarregant-se de l'execució, del tractament d'errors i del cicle de vida del handle. El fragment manté junts els paràmetres d'encaminament sense canviar la verificació del certificat.
cURL es connecta primer a proxy.example:8080. Per a aquesta destinació HTTPS, la sol·licitud de túnel indica api.example:8443 i la identitat TLS continua sent api.example.
CURLOPT_PORT és una sobreescriptura del port de destinació, no del port del proxy. Fixar-lo a 443 sempre que una URL comenci per https pot sobreescriure un servei allotjat deliberadament al 8443. libcurl recomana triar el port a la URL en lloc d'utilitzar aquesta opció.
En reutilitzar un handle, tingueu en compte també qualsevol sobreescriptura explícita anterior del port. Una URL nova no fa més fàcil interpretar opcions retingudes i contradictòries.
L'intermediari ha de permetre CONNECT al port de destinació triat. Una denegació per al 8443 no és motiu per moure l'oïdor del proxy ni desactivar la validació TLS.