<div dir="ltr"><div>Hello all.</div><div><br></div><div>I tried reading all the FAQ's and scoured the rest of the internet for any configuration examples I can find and I have not seen a working solution for this.</div><div>I have been using squid for a couple of years now to bump SSL traffic with no issues.</div><div>However I have a new environment where an upstream proxy is already in place and MUST be used.</div><div>So I am trying to get squid working with SSL bump where I have to use a cache_peer.</div><div>So here's the environment.</div><div><br></div><div>Normal network setup:</div><div>Client --> Forefront Threat Manager Gateway/Proxy (TMG) --> Internet</div><div>Client is setup to use TMG:8080 to get to internet for all protocols.</div><div><br></div><div>Here's my new network chain with squid inserted:</div><div>Moving forward, I will abbreviate the Forefront proxy as "TMG"</div><div><br></div><div>Client --> Squid 3.5.5 --> TMG --> Internet</div><div>And then I set the client to use squid:3128</div><div><br></div><div>The problem is the CONNECT tunnel.</div><div>Scenario:</div><div>Under normal circumstances, the following takes place for a standard request:</div><div>GET <a href="http://www.arin.net">http://www.arin.net</a></div><div>This results in a 301 redirect to <a href="https://www.arin.net">https://www.arin.net</a></div><div>The client then immediately sends CONNECT <a href="http://www.arin.net:443">www.arin.net:443</a> to TMG:8080</div><div>And the connection is made. Perfectly normal.</div><div><br></div><div>Currently, I have configured the client to use squid:3128 for all protocols</div><div>How do I bump the CONNECT tunnel?</div><div>I have been trying to manipulate the configuration file for days with no success.</div><div>I have settled on the configuration below for now because it allows unimpeded network traffic.</div><div>It does not bump any SSL.</div><div>Client is still set to use port 3128 for all protocols, Setting it to use 3129 for https was a failure.</div><div><br></div><div>I've tried:</div><div>https_port 3128 & 3129</div><div>http_port 3128 & 3129</div><div>various ssl_bump directives to include peek, stare, bump.</div><div>Nothing works.</div><div><br></div><div>Here's my usual failure in /var/log/access.log:</div><div>1435482419.334    194 192.168.25.2 TCP_MISS/301 616 GET <a href="http://www.arin.net/">http://www.arin.net/</a> - FIRSTUP_PARENT/<a href="http://10.210.4.103">10.210.4.103</a> text/html</div><div>1435482419.337      0 192.168.25.2 TAG_NONE/409 4324 CONNECT <a href="http://www.arin.net:443">www.arin.net:443</a> - HIER_NONE/- text/html</div><div><br></div><div>After reviewing many packet captures... I think the problem is this:</div><div>In order for squid to establish a connection via SSL to arin, squid would have to send a CONNECT request through the cache_peer.</div><div>Squid "never" sends a CONNECT <a href="http://www.arin.net:443">www.arin.net:443</a> to the cache_peer in any configuration I have tried, unless, I leave the configuration the way it is below.</div><div>Of course, since the client is only talking to squid on port 3128, no SSL bumping takes place.</div><div>The minute I try to bump port 3128 all SSL stops working.</div><div><br></div><div>Again... I can get this to work in 2 minutes with no problems if I didn't have to also speak to a cache_peer.</div><div><br></div><div><br></div><div>Contents of /etc/squid/squid.conf :</div><div>acl localnet src <a href="http://192.168.25.0/24">192.168.25.0/24</a>        # RFC1918 possible internal network</div><div>acl localnet src fc00::/7       # RFC 4193 local private network range</div><div>acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines</div><div><br></div><div>acl SSL_ports port 443</div><div>acl Safe_ports port 80          # http</div><div>acl Safe_ports port 21          # ftp</div><div>acl Safe_ports port 443         # https</div><div>acl Safe_ports port 70          # gopher</div><div>acl Safe_ports port 210         # wais</div><div>acl Safe_ports port 1025-65535  # unregistered ports</div><div>acl Safe_ports port 280         # http-mgmt</div><div>acl Safe_ports port 488         # gss-http</div><div>acl Safe_ports port 591         # filemaker</div><div>acl Safe_ports port 777         # multiling http</div><div>acl CONNECT method CONNECT</div><div><br></div><div>cache_effective_user proxy</div><div>forwarded_for delete</div><div><br></div><div>http_access allow localhost manager</div><div>http_access deny manager</div><div><br></div><div>http_access allow localnet</div><div>http_access allow localhost</div><div><br></div><div>http_access deny all</div><div><br></div><div>never_direct allow all</div><div>cache_peer 192.168.1.5 parent 8080 0 no-query default login=redacted</div><div>http_port 3128</div><div><br></div><div>host_verify_strict off</div><div>sslproxy_cert_sign signTrusted</div><div>sslproxy_cert_error allow all</div><div>sslproxy_flags DONT_VERIFY_PEER</div><div><br></div><div>http_port 3129 intercept ssl-bump capath=/etc/ssl/certs cert=/etc/ssl/certs/midca.pem key=/etc/ssl/private/midca.key generate-host-certificates=on</div><div>ssl_bump server-first all</div><div>ssl_bump bump all</div><div><br></div><div>sslcrtd_program /lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB</div><div>sslcrtd_children 40 startup=7 idle=5 </div><div><br></div><div>cache_dir ufs /var/cache/squid 100 16 256</div><div>coredump_dir /var/cache/squid</div><div><br></div><div>refresh_pattern ^ftp:           1440    20%     10080</div><div>refresh_pattern ^gopher:        1440    0%      1440</div><div>refresh_pattern -i (/cgi-bin/|\?) 0     0%      0</div><div>refresh_pattern .               0       20%     4320</div><div><br></div><div><br></div><div><br></div><div>I would send pcaps of the failures but then I would have to sanitize them.</div><div><br></div><div>Thanks.</div><div>-JP</div></div>