Я хочу заблокировать определенные URL для некоторых пользователей моей внутренней сети. Я использую базирующийся явный прокси сквида с этой целью с redirect_program. Клиенты настроены для использования pac файла для https URL, который заставляет их направить свои запросы HTTPS к явному прокси.
Проблема, перенаправление любого запроса ПОДКЛЮЧЕНИЯ на https URL к заблокированному URL страницы перестало работать. Я попробовал и http и https, основывал заблокированные URL страницы, но не мог найти удачу. По некоторым причинам я не хочу использовать прозрачный прокси со столкновением ssl.
Safari дает ошибку 'Safari, не может открыть страницу. Ошибка была "Была проблема, устанавливающая безопасный туннель через веб-прокси-сервер"'
Chrome дает ошибку 'Эта веб-страница, не доступно. ERR_TUNNEL_CONNECTION_FAILED'.
Вот строка из access.log для https://www.yahoo.com.
07/Oct/2015:01:41:29 - 0500 74 ПОДКЛЮЧЕНИЯ 172.0.0.9 TCP_REDIRECT/302 253 www.yahoo.com:443 - HIER_NONE/-
Я считал где-нибудь, что браузер ожидает запускать SSL/квитирование TLS после запроса подключения, и именно поэтому он перестал работать. Вот кавычка из документации редиректора сквида.
"Изменения URL и особенно перенаправление только возможно на определенных методах, и некоторые, таких как POST и ПОДКЛЮЧЕНИЕ требуют специального ухода".
Это не говорит, что перенаправление не возможно для метода ПОДКЛЮЧЕНИЯ. Однако не, где упоминается, что, как мы можем перенаправить POST и ПОДКЛЮЧЕНИЕ (я особенно интересуюсь ПОДКЛЮЧЕНИЕМ) или какой-либо пример дан.
Ведите меня о том, как перенаправить запросы подключения https к заблокированной странице. Если это не возможно, там работа вокруг для этого с явным прокси?Спасибо.
Я использую сквид 3.5.4 на человечности.
К сожалению, это невозможно без бампинга (расшифровки) SSL-соединения в первую очередь. Браузеры по своей конструкции отказывают в дополнительной загрузке/расшифровке при неудачных запросах на ПОДДЕРЖКИ. Более формальное описание смотрите - http://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html.
Если вы do решили выполнить расшифровку SSL, то можно сначала разрешить запрос CONNECT, а затем заблокировать/переадресовать следующий HTTP-запрос, приходящий через этот установленный туннель соединения - пожалуйста, учтите, что если это вообще может быть не HTTP, так как некоторые приложения используют прокси-туннелирование CONNECT для своих собственных протоколов (например, Skype).
Также следует иметь в виду - если приложение использовало технику "SSL pinning" при выполнении ПОДКЛЮЧЕННЫХ запросов к прокси - оно откажется работать с расшифрованными соединениями.
.