Краткий ответ: это возможно и может быть сделано с помощью специального 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-прокси.