Я изучаю некоторые варианты использования прокси-сервера Squid 2.7, и я видел большое количество примеров перезаписи URL-адресов, которые принимают такие URL-адреса, как: http: //somesitename.com, а затем перезаписчик может изменить URL-адрес на: https: // somesitename .com
И эти примеры отлично работают.
Что мне интересно, так это то, можно ли сделать обратное с помощью переписчика URL-адресов squid. то есть перейти с https: //somesitename.com на http: //somesitename.com?
Простая попытка отредактировать файл сценария, который обрабатывает перезапись, похоже, не помогает. Так что мне было интересно, есть ли какие-то определенные вещи, которые я должен сначала настроить в Squid, если это вообще возможно сделать то, что я прошу.
В моем браузере вручную настроен squid в качестве прокси для всех запросов, и я могу видеть запросы https, отображаемые в моем файле squid access.log (с помощью метода CONNECT).
Переход с http: // на https: // относительно прост: сервер squid принимает TCP-соединение, а затем отправляет HTTP-ответ, сообщающий клиенту, что контент перемещен на новый URL-адрес. Затем клиент повторяет запрос по новому URL-адресу.
Переход с https: // на http: // сложнее: вам нужно установить TCP-соединение, а затем установить HTTPS-соединение, которое потребует от вас предоставления сертификата, которому клиент будет доверять как сертификату сайт, к которому он пытался подключиться. Только после этого вы сможете отправить ответ, сообщающий клиенту, что ему нужно перейти по URL-адресу http: //.
Вообще говоря, ваш сервер Squid никогда не увидит URL-адрес, который запрашивает клиент, - он просто увидит запрос на ПОДКЛЮЧЕНИЕ к определенному IP: порту. SSL требует, чтобы соединение между веб-сервером и клиентом было полностью зашифровано, поэтому все, что может делать Squid, - это прокси для TCP-соединения. Подробная информация о том, какое именно имя хоста и путь хочет клиент, не будет сообщаться до тех пор, пока не будет установлено HTTPS-соединение, а затем они будут переданы через зашифрованное соединение, поэтому прокси-сервер не сможет их увидеть.