Используйте схему, указанную в документации для слушающего порта прокси. Выбирая кандидатов из списка HTTP-прокси, уточните эту схему до настройки клиента. Для HTTPS-сайта можно использовать http://proxy.example:8080; замена этого значения на https:// задаёт другой способ подключения к прокси.

URL проксиURL сайтаСоединение
http://proxy.example:8080http://example.com/Незашифрованный HTTP до прокси и до целевого сервера.
http://proxy.example:8080https://example.com/HTTP CONNECT до прокси, затем TLS с целевым сервером внутри туннеля.
https://proxy.example:8443https://example.com/TLS до прокси; туннель к целевому серверу проходит внутри этого соединения.

Для обычного HTTP-порта прокси, разрешающего CONNECT, такая команда согласована с настройками:

curl --proxy http://127.0.0.1:8080 https://example.com/

TLS-рукопожатие с сайтом начинается после того, как прокси примет туннель. Если заменить URL прокси на https://, хотя его слушающий порт понимает только незашифрованный HTTP, согласование TLS с прокси может завершиться ошибкой ещё до обращения к сайту.

Что даёт TLS на участке до прокси

Прокси с поддержкой TLS защищает соединение между клиентом и прокси, включая обмен CONNECT и аутентификацию на прокси, от пассивного прослушивания на этом участке. Оператор прокси по-прежнему обрабатывает соединение и знает адрес назначения туннеля. Этот режим должны поддерживать и клиент, и слушающий порт прокси:

curl --proxy https://proxy.example:8443 https://example.com/

Используйте настоящее имя хоста сервиса: сертификат должен соответствовать ему и быть доверенным. Ограничения на адреса назначения и порты сохраняются.

При HTTPS с обеих сторон выполняются две проверки сертификатов. В curl их можно настроить отдельно:

curl --proxy https://proxy.example:8443 --proxy-cacert proxy-ca.pem --cacert origin-ca.pem https://example.com/

--proxy-cacert задаёт доверие для прокси, а --cacert — для целевого сервера. При необходимости используйте наборы сертификатов от администратора; системного хранилища доверия уже может быть достаточно. Прежде чем менять любую из настроек, определите, какое рукопожатие завершилось ошибкой.

Пометка «HTTPS» в списке прокси может означать лишь то, что конечная точка прошла проверку CONNECT. Если список не поясняет метод проверки, сама по себе пометка не говорит, какую схему ожидает слушающий порт: http:// или https://.

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