Страница 1 из 1

Каскадирование Squid + SSL

Добавлено: 2014-09-25 10:03:56
Tiarasu
День добрый.
Настраивал прозрачное проксирование Squid, + каскадирование, + SSL.
Схема такая клиент====>Squid1=====>Squid2=====>Интернет.
Добился полностью прозрачного Squid'a, с генерацией самоподписанных SSL, которые вполне себе жуют большинство сайтов, работающих по HTTPS.
Примерно разобрался, как выпустить Squid через parrent proxy.
Вот кусок Squid.conf дочернего сервера (Squid1), отвечающий за parrent proxy:

Код: Выделить всё

cache_peer 192.168.0.162 parent 8080 0 ssl no-query default no-digest no-netdb-exchange originserver
cache_peer_access 192.168.0.162 allow all
never_direct allow all
К сожалению, пока не осилил, как подружить два Squid'a через SSl.
В cache.log дочернего Squid'a вылезает ошибка:

Код: Выделить всё

2014/09/25 06:25:00 kid1| fwdNegotiateSSL: Error negotiating SSL connection on FD 13: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (1/-1/0)
2014/09/25 06:25:00 kid1| TCP connection to 192.168.0.162/8080 failed
Аналогичная ошибка вылезает и в браузере:

Код: Выделить всё

(92) Protocol error (TLS code: SQUID_ERR_SSL_HANDSHAKE)
Handshake with SSL server failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
В связи в этим вопрос - какие сертификаты надо подсовывать родительскому Squid'у, если надо именно это?
Или настроить ему точно такую же SSL-генерацию как и дочернему?

На всякий случай, вот куски конфигов, описывающие генерацию SSL:
Дочерний squid (Squid1):

Код: Выделить всё

#HTTPS SECTION
https_port 127.0.0.1:3128 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/etc/squid/ssl/squid.pem key=/usr/local/etc/squid/ssl/root.key
http_port 127.0.0.1:3129 intercept
http_port 3130
ssl_bump server-first all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/local/libexec/squid/ssl_crtd -s /usr/local/etc/squid/ssl/ssl_db -M 4MB
Родительский squid (Squid2):

Код: Выделить всё

#HTTPS SECTION
http_port 8080 ssl-bump cert=/usr/local/etc/squid/root.cer key=/usr/local/etc/squid/root.key generate-host-certificates=on
ssl_bump client-first all
sslproxy_cert_error allow all
 
Из одинакового у них только ключевой сертификат root.key

Сорри, раньше с сертификацией особо сталкиваться не приходилось.

Re: Каскадирование Squid + SSL

Добавлено: 2014-09-28 20:15:04
Alex Keda
а без ssl дружатся?

Re: Каскадирование Squid + SSL

Добавлено: 2014-09-29 8:27:39
Tiarasu
Alex Keda писал(а):а без ssl дружатся?
Разобрался.
Конечно же, надо было дружить без SSL, ни к чему он там. Просто была закоментированна одна опция

Код: Выделить всё

ssl_bump server-first all
#ssl_bump client-first all
Что при соединении без SSL приводило к ошибке

Код: Выделить всё

2014/09/25 11:22:13 kid1| assertion failed: forward.cc:784: "peer->use_ssl"
Ну и соответственно тексту ошибки, я попытался копать в сторону прикручивания ssl к cache_peer, чего делать не стоило.

Re: Каскадирование Squid + SSL

Добавлено: 2014-09-29 10:23:40
Tiarasu
Нет, нифига не заработало. Если ставлю опцию newer never_direct allow all - через пару минут работы Squid вылетает с ошибкой

Код: Выделить всё

2014/09/29 07:16:55 kid1| assertion failed: forward.cc:784: "peer->use_ssl"
Видимо, надо все же использовать ssl