Прозрачный HTTPS-прокси Squid с вышестоящим родительским сервером

Прозрачный HTTPS-прокси Squid с вышестоящим родительским сервером

У меня есть сеть без прямого доступа в Интернет, где яКальмар 3.5.9какпрозрачный проксипрослушивание tcp/8080HTTP и tcp/8443HTTPS (перенаправление iptablesс tcp/80 и tcp/443 соответственно).

У этого Squid также нет прямого доступа к Интернету, но он может взаимодействовать с родительским Squid в другой части сети, у которого есть доступ к Интернету.

С HTTP все работает хорошо - клиент делает запросhttp://www.example.com(порт 80), маршрутизатор и iptables перенаправляют соединение на порт 8080 Squid, который перехватывает запрос и отправляет запрос на прокси-сервер верхнего уровня, который обслуживает его как обычно. Вот используемые параметры конфигурации:

http_port 8080 intercept
cache_peer proxy-upstream parent 3128 0 no-query
never_direct allow all

Это работает хорошо. Теперь я хотел сделать то же самое для HTTPS:

https_port 8443 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/myCA.pem
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 5

ssl_bump bump all

Без cache_peerнего все работает так, как и ожидалось, т.е. автоматически генерирует поддельный SSL-сертификат и устанавливает прямое соединение с целью.

Однако с cache_peerэтим не работает. Я получаю ошибку HTTP/503 от прокси:

1446684476.877  0 proxy-client TAG_NONE/200 0 CONNECT 198.51.100.10:443 - HIER_NONE/- -
1446684476.970  3 proxy-client TCP_MISS/503 4309 GET https://secure.example.com/ - FIRSTUP_PARENT/proxy-upstream text/html

В качестве альтернативы, если я изменю ssl_bumpнастройку следующим образом:

acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all

Я получаю сообщение о сбое в cache.log:

2015/11/05 01:07:11 kid1| assertion failed: PeerConnector.cc:116: "peer->use_ssl"

Когда я использую этот прокси в непрозрачном режиме, т. е. настраиваю прокси на клиенте на proxy-test:3128, это работает:

1446684724.879 141 proxy-client TCP_TUNNEL/200 1886 CONNECT secure.example.com:443 - FIRSTUP_PARENT/proxy--upstream -

Поэтому мне нужно как-то повернуть HTTPSзапрос, который попадает напрокси-теств CONNECTзапрос, который пересылаетсяпрокси-вверх по течениюЕсли Squid не может этого сделать, есть ли какое-либо другое прозрачно-непрозрачное прокси-программное обеспечение, которое может это сделать?

Спасибо!

Связанный контент