Привет всем!
Чего хочется:
хочется фильтровать https/SSL трафик, чтобы на основе «регулярки» направлять запросы через разные хосты в зависимости от URL. В теории прокси, используя подставной сертификат, выдает себя за целевой хост и расшифровывает трафик клиента, а потом от его имени запрашивает странички и передает ответ клиенту.
Чего имеем:
имеем софтину «privoxy», которая тут анонсировала что умеет такое:
Supports https inspection which allows to filter https requests.
Чего не получилось:
не взлетает функционал. Может я чего не понял и в конфиге недопилил? Вот конфиги:
Основной конфиг:
confdir /etc/privoxy
logdir /var/log/privoxy
logfile logfile31017
listen-address 192.168.96.12:31017
ca-directory /usr/local/etc/privoxy/CA
ca-cert-file cacert.crt
ca-key-file cakey.pem
ca-password *********
certificate-directory /var/spool/privoxy
cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
trusted-cas-file cacert.pem
actionsfile https-enable.action
forward-socks5 example.ru/balala.*jpg$ 192.168.96.12:11014 .
toggle 0
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forwarded-connect-retries 0
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300
Тут я пытаюсь перенаправлять запросы «example.ru/balala.*jpg$» через сокс-прокси «192.168.96.12». Остальное все уходит через дефолтный шлюз.
Вот файл https-enable.action
{+limit-connect{-}} # All ports are OK
{+limit-connect{,}} # No HTTPS/SSL traffic is allowed
{+https-inspection \
+ignore-certificate-errors }
example.ru
В мануале есть замечание, что
Note that the action has to be enabled based on the CONNECT request which doesn’t contain a path. Enabling it based on a pattern with path doesn’t work as the path is only seen by Privoxy if the action is already enabled.
Только я не понял, это надо как-то в конфиге подключить или это просто описание процесса? Может кто пользовался уже и знает в чем проблема?
Алтернативные решения приветствутся. Главное, чтоб софт под Linux работал.