cURL: proxyport kontra célport
Tartsa az HTTPS-szolgáltatás portját a cél-URL-ben, a közvetítő portját pedig a proxy URL-ben, anélkül hogy a CURLOPT_PORT-tal felülírná őket.
Egy 8443-as porton futó HTTPS-szolgáltatás 8080-as porton futó HTTP-proxyn keresztül érhető el. Ezek a számok különböző kapcsolatokat írnak le:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
A végrehajtás, a hibakezelés és a handle életciklusa továbbra is az alkalmazás felelőssége. A kódrészlet együtt tartja az útválasztási bemeneteket, anélkül hogy módosítaná a tanúsítvány ellenőrzését.
A cURL először a proxy.example:8080-hoz csatlakozik. Ennél az HTTPS-célnál az alagútkérelem az api.example:8443 nevet adja meg, a TLS-identitás pedig api.example marad.
A CURLOPT_PORT a célport felülírása, nem a proxy portja. Ha minden https-sel kezdődő URL esetén 443-ra állítja, felülírhat egy szándékosan 8443-on futó szolgáltatást. A libcurl azt javasolja, hogy a portot az URL-ben válassza ki, ne ezt az opciót használja.
A handle újrafelhasználásakor számoljon egy korábbi kifejezett portfelülírással is. Egy új URL nem teszi könnyebben értelmezhetővé az egymásnak ellentmondó, megtartott opciókat.
A közvetítőnek engedélyeznie kell a CONNECT-et a kiválasztott célportra. A 8443-as port elutasítása nem ok a proxyfigyelő áthelyezésére vagy a TLS-ellenőrzés kikapcsolására.