Порт на прокси и порт на дестинация в cURL
Пазете порта на HTTPS услугата в URL адреса на дестинацията, а порта на посредника — в URL адреса на прокси сървъра, без да ги замествате чрез CURLOPT_PORT.
HTTPS услуга на порт 8443 е достъпна през HTTP прокси на порт 8080. Тези числа описват различни връзки:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
Приложението продължава да отговаря за изпълнението, обработката на грешки и жизнения цикъл на манипулатора. Фрагментът държи входните данни за маршрутизиране заедно, без да променя проверката на сертификата.
cURL първо се свързва с proxy.example:8080. За тази HTTPS дестинация заявката за тунел посочва api.example:8443, а идентичността по TLS остава api.example.
CURLOPT_PORT е замяна на порта на дестинацията, а не на порта на прокси сървъра. Задаването му на 443 всеки път, когато URL адресът започва с https, може да замени услуга, умишлено хоствана на 8443. libcurl препоръчва избор на порта в URL адреса вместо използване на тази опция.
Когато използвате повторно манипулатор, отчитайте и всяка предишна изрична замяна на порта. Новият URL адрес не прави противоречивите запазени опции по-лесни за тълкуване.
Посредникът трябва да разрешава CONNECT към избрания порт на дестинацията. Отказ за 8443 не е причина да местите слушателя на прокси сървъра или да изключвате проверката по TLS.