Un service HTTPS sur le port 8443 est joignable via un proxy HTTP sur le port 8080. Ces nombres décrivent des connexions différentes :

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

L'application garde la responsabilité de l'exécution, du traitement des erreurs et du cycle de vie du handle. L'extrait regroupe les paramètres de routage sans modifier la vérification du certificat.

cURL se connecte d'abord à proxy.example:8080. Pour cette destination HTTPS, la requête de tunnel nomme api.example:8443, et l'identité TLS reste api.example.

CURLOPT_PORT remplace le port de destination, pas celui du proxy. Le fixer à 443 dès qu'une URL commence par https peut remplacer un service hébergé volontairement sur 8443. libcurl conseille de choisir le port dans l'URL plutôt que d'utiliser cette option.

Lorsqu'un handle est réutilisé, tenez compte aussi d'un remplacement explicite de port antérieur. Une nouvelle URL ne rend pas plus lisibles des options conservées et contradictoires.

L'intermédiaire doit autoriser CONNECT vers le port de destination choisi. Un refus pour 8443 n'est pas une raison de déplacer l'écouteur du proxy ni de désactiver la validation TLS.

Articles similaires