Служба 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.

Похожие статьи