Un servizio HTTPS sulla porta 8443 è raggiungibile tramite un proxy HTTP sulla porta 8080. Questi numeri descrivono connessioni diverse:

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

L'applicazione conserva la responsabilità dell'esecuzione, della gestione degli errori e del ciclo di vita dell'handle. Lo snippet tiene insieme i parametri di instradamento senza modificare la verifica del certificato.

cURL si connette prima a proxy.example:8080. Per questa destinazione HTTPS la richiesta di tunnel indica api.example:8443 e l'identità TLS resta api.example.

CURLOPT_PORT sostituisce la porta di destinazione, non quella del proxy. Impostarla a 443 ogni volta che un URL inizia con https può sovrascrivere un servizio ospitato di proposito sulla 8443. libcurl consiglia di scegliere la porta nell'URL invece di usare quell'opzione.

Quando riutilizzi un handle, considera anche una precedente sostituzione esplicita della porta. Un nuovo URL non rende più facili da interpretare opzioni conservate e contraddittorie.

L'intermediario deve consentire CONNECT verso la porta di destinazione scelta. Un rifiuto per la 8443 non è un motivo per spostare il listener del proxy o disattivare la convalida TLS.

Articoli correlati