Порт проксі і порт прызначэння ў 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.