@reaper666

Как заставить работать deny_info с HTTPS в Squid?

Есть Squid 3.5.28. Непрозрачный, работает с указанием адреса в прокси.
Включил директиву deny_info с перенаправлением на другой адрес.
deny_info 303:url.com block_users
В ACL block_users попадают пользователи, у которых закончился трафик.
Проблема в том, что если пользователь идет на HTTP-сайт, то его перенаправляет, а если на HTTPS, то просто браузер выводит сообщение о том, что не может установить соединение.
Работа идет с поддержкой метода peek and splice. Логи следующие.
TCP_DENIED/407 4169 GET rejik.ru - HIER_NONE/- text/html
TCP_DENIED/407 4398 GET rejik.ru - HIER_NONE/- text/html
TCP_DENIED/303 471 GET rejik.ru login HIER_NONE/- text/html
TCP_DENIED/407 3884 CONNECT ya.ru:443 - HIER_NONE/- text/html
TCP_DENIED/407 4113 CONNECT ya.ru:443 - HIER_NONE/- text/html
TCP_DENIED/303 470 CONNECT ya.ru:443 login HIER_NONE/- text/html

Насколько я понял, при заходе на http он получает TCP_DENIED и обращается к директиве deny_info и перенаправляет юзера туда, поскольку вернулся код 303. В случае захода на HTTPS он тоже получает TCP_DENIED и пытается перенаправить, но поскольку SSL-туннель уже поднят, адреса хоста в нем уже не изменить. У меня работало перенаправление в случае подмены сертификатов, но это не вариант, поскольку добавлением сертификата в доверенные проблему того, что браузеры ругаются на неверный сертификат, не решить.
Как еще можно решить эту проблему?
  • Вопрос задан
  • 1453 просмотра
Решения вопроса 1
Kalombyr
@Kalombyr
К счастью, без "предупреждения" от браузера это не обойти т.к. в этом прелесть ssl.
У меня когда-то было сделана блокировка через bind+nginx с автогенерацией сертификата под каждый домен, но смысла в этом особо не видел.
Навсякий случай подпишусь на вопрос, ибо могу быть не прав.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы