HTTP-прокси и HTTPS-прокси: что означает эта пометка
Чем HTTP-прокси, создающий туннель к HTTPS-сайту, отличается от HTTPS-прокси, который шифрует соединение с самим прокси.
Используйте схему, указанную в документации для слушающего порта прокси. Выбирая кандидатов из списка HTTP-прокси, уточните эту схему до настройки клиента. Для HTTPS-сайта можно использовать http://proxy.example:8080; замена этого значения на https:// задаёт другой способ подключения к прокси.
| URL прокси | URL сайта | Соединение |
|---|---|---|
http://proxy.example:8080 | http://example.com/ | Незашифрованный HTTP до прокси и до целевого сервера. |
http://proxy.example:8080 | https://example.com/ | HTTP CONNECT до прокси, затем TLS с целевым сервером внутри туннеля. |
https://proxy.example:8443 | https://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://.