Возможно ли соединение HTTPS через прокси-серверы? Если да, то какой прокси-сервер позволяет это?
Дублировано с Как использовать прокси Socks 5 с HTTP-клиентом Apache 4?
Возможно ли соединение HTTPS через прокси-серверы? Если да, то какой прокси-сервер позволяет это?
Дублировано с Как использовать прокси Socks 5 с HTTP-клиентом Apache 4?
Ответы:
TLS / SSL (S в HTTPS) гарантирует отсутствие перехватчиков между вами и сервером, с которым вы связываетесь, то есть никаких прокси. Обычно вы используете
CONNECT
для открытия TCP-соединения через прокси. В этом случае прокси не сможет кэшировать, читать или изменять какие-либо запросы / ответы и, следовательно, будет бесполезным.Если вы хотите, чтобы прокси мог читать информацию, вы можете использовать следующий подход:
Примером может служить удар SSL Squid . Точно так же для этого можно настроить отрыжку . Это также использовалось в менее благоприятном контексте египетским интернет-провайдером .
Обратите внимание, что современные веб-сайты и браузеры могут использовать HPKP или встроенные контакты сертификатов, что не позволяет использовать этот подход.
источник
Unconditionally trusted
ссылается на сертификат CA. Сертификаты CA не имеют доменов. Я изменил ответ двумя примерами, где это работает / работает на практике без каких-либо предупреждений для пользователя.Краткий ответ: это возможно и может быть выполнено с помощью специального HTTP-прокси или SOCKS-прокси.
Прежде всего, HTTPS использует SSL / TLS, который по своей конструкции обеспечивает сквозную безопасность, устанавливая безопасный канал связи поверх небезопасного. Если прокси-сервер HTTP может видеть содержимое, значит, это перехватчик «злоумышленник посередине», и это противоречит цели SSL / TLS. Так что должны быть какие-то трюки, если мы хотим прокси через простой HTTP-прокси.
Хитрость в том, что мы превращаем HTTP-прокси в TCP-прокси с помощью специальной команды
CONNECT
. Не все HTTP-прокси поддерживают эту функцию, но многие поддерживают ее сейчас. Прокси-сервер TCP не может видеть передаваемое HTTP-содержимое в виде открытого текста, но это не влияет на его способность пересылать пакеты туда и обратно. Таким образом, клиент и сервер могут общаться друг с другом с помощью прокси. Это безопасный способ проксирования данных HTTPS.Существует также небезопасный способ сделать это, при котором HTTP-прокси становится посредником. Он получает инициированное клиентом соединение, а затем инициирует другое соединение с реальным сервером. В хорошо реализованном SSL / TLS клиент будет уведомлен о том, что прокси-сервер не является настоящим сервером. Таким образом, клиент должен доверять прокси, игнорируя предупреждение, чтобы все работало. После этого прокси просто расшифровывает данные из одного соединения, повторно шифрует и передает их в другое.
Наконец, мы определенно можем проксировать HTTPS через прокси-сервер SOCKS , потому что прокси-сервер SOCKS работает на более низком уровне. Вы можете рассматривать прокси-сервер SOCKS как прокси TCP и UDP.
источник
насколько я помню, вам нужно использовать HTTP-запрос CONNECT на прокси. это преобразует соединение запроса в прозрачный туннель TCP / IP.
поэтому вам нужно знать, поддерживает ли используемый вами прокси-сервер этот протокол.
источник
Если это все еще интересно, вот ответ на аналогичный вопрос: Преобразование HTTP-прокси в HTTPS-прокси в Twisted
Чтобы ответить на вторую часть вопроса:
По умолчанию большинство прокси-серверов будут настроены так, чтобы разрешать HTTPS-подключения только к порту 443, поэтому https-URI с настраиваемыми портами не будут работать. Обычно это настраивается в зависимости от прокси-сервера. Например, Squid и TinyProxy поддерживают это.
источник
Вот мой полный код Java, который поддерживает запросы HTTP и HTTPS с использованием прокси-сервера SOCKS.
источник
Вы можете сделать это, используя технику «человек посередине» с динамической генерацией SSL. Взгляните на mitmproxy - это прокси-сервер MITM на основе Python с поддержкой SSL.
источник
туннелирование HTTPS через SSH (версия для Linux):
все, что вы делаете на localhost. затем:
источник
Я пробовал
ssh -N -D 12345 login@proxy_server
localhost:12345
но это приводило к ошибке «Небезопасное соединение» всякий раз, когда я пытался подключиться к веб-сайту https.
Решение было
Ссылка из цифровой документации по океану
Как безопасно маршрутизировать веб-трафик без VPN с помощью туннеля SOCKS
источник
Я не думаю, что «иметь HTTPS-соединения через прокси-серверы» означает атаку типа «Человек посередине» прокси-сервера. Я думаю, он спрашивает, можно ли подключиться к прокси-серверу http через TLS. И ответ - да.
Да, см. Мой вопрос и ответ здесь. Прокси-сервер HTTPs работает только в SwitchOmega
Прокси-сервер использует сертификаты SSL, как и обычные веб-сайты. Но вам нужен
pac
файл для браузера, чтобы настроить прокси-соединение через SSL.источник