Есть ли способ кеширования HTTPS-запросов на прокси-сервере?


12

В нашей среде мы используем прокси-сервер Squid и хотим кэшировать HTTPS-запросы.

Есть ли способ настроить Squid или вообще прокси-сервер для кеширования HTTPS-запросов?


Это, вероятно, принадлежит security.se
Том О'Коннор

1
Просто чтобы прояснить, используете ли вы squid перед кучей своих собственных серверов, или вы используете его между своими рабочими станциями и Интернетом?
Зоредаче

Чтобы уточнить. Вы хотите кешировать запросы или ответы?
Gqqnbig

Ответы:


12

Есть способ сделать это, но это принципиально против причин использования HTTPS.

Вот как ты это сделаешь.

  1. Создайте самозаверяющий сертификат SSL для сайта, который вы хотите перехватывать и кэшировать запросы.
  2. Установите и запустите на своем прокси-сервере stunnel, сообщив ему, что сертификат, который он должен предоставить, сгенерирован на этапе 1.
  3. Пусть Stunnel отправит расшифрованные запросы в squid.
  4. Возможно, вам понадобится stunnel на другой стороне или openssl_client для повторного шифрования запроса на вышестоящий сервер.

Предостережения:

  1. Ваши пользователи будут ненавидеть вас. Каждый запрос SSL к этому сайту будет отображать недействительное окно сертификата.
  2. Вы подвергаете себя потенциальным судебным процессам за непослушные поступки. (IANAL)
  3. Вы когда-либо сможете получить самоподписанный сертификат, работающий для этого, потому что предполагается, что сеть доверия PKI для SSL-сертификатов должна работать. Не говоря уже о скомпрометированных корневых ЦС.

Я не собираюсь давать вам точные детали того, как это сделать, потому что а) я думаю, что это несколько неэтично, и б) вам лучше научиться делать это.

Я предлагаю вам изучить, как работают атаки типа "stunnel" и "человек посередине".


Вы можете попросить Trustwave zdnet.com/… продать вам корневой сертификат, чтобы вы могли внедрить это решение, не причиняя неудобств вашим пользователям: P
Rory

2
На самом деле, если вы находитесь в домене, гораздо проще создать собственный ЦС и развернуть для него публичные сертификаты с помощью групповой политики.
Том О'Коннор

1
Доверие к SSC + MITM полезно для отладки протокола, кэширования, глубокой проверки пакетов и цензуры / ведения журнала. : / Кроме тех причин, не так хорошо.

6

Просто чтобы объяснить, почему это не может быть сделано без MITM - прокси видит только DNS-имя сервера, к которому вы хотите подключиться при использовании зашифрованного HTTPS. Он не видит ни URL, ни заголовки ответа. Он не может определить, к какому отдельному ресурсу вы обращаетесь на сайте, кешируется он или нет, и каковы времена его модификации. Все, что он может видеть, это то, что кто-то хочет что-то от удаленного сервера, использующего HTTPS.

Это означает, что кэширование не может работать, так как прокси-сервер не знает, какие кэшированные объекты вам дать или как их получить.


5

Нет, их нет: они зашифрованы ... Обходной путь может быть похож на развертывание « человек посередине» , но это победит все причины, стоящие за https .


1
Нет ли обходного пути для достижения этой цели или принудительно расшифровывать и кэшировать прокси-сервер?
Supratik

Обходной путь может быть несколько похожим на man-in-middleразвертывание, но это победит все причины, стоящие за https
yrk

5
Я не согласен, что это победит все причины, стоящие за https. Если вы делаете это дома и владеете прокси, ваши данные будут по-прежнему использовать https между вашим прокси и веб-сайтами.
Brunoqc

@brunoqc это работа VPN.
yrk

1
Если по какой-то причине важно кэширование полезных нагрузок https или отладка сеанса https, MITM очень полезен. На самом деле, так работает Чарльз.

1

Zeus (теперь Riverbed) ZTM Traffic Manager может сделать это, поскольку он может транслировать http и https-трафик в обоих направлениях и кэшировать незашифрованный контент - он работает, мы его используем, но это страшно дорого - как в цене Porsche на сервер.


5
Но это все же требует от вас установки нового корневого сертификата на клиенте, не так ли? И ты все еще должен доверять прокси, не так ли?
phihag
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.