<div dir="ltr"><div style="font-size:12.8000001907349px">Dear all,</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">I recently compiled squid-3.4.9 with ssl-bump support and, although it is working for the most part, I'm having some issues accessing some websites.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">The behavior is REALLY weird so I'm going to try and describe it the best I can:</div><div style="font-size:12.8000001907349px">- If i access <a href="https://www.google.com/" target="_blank">https://www.google.com/</a> in Chrome, I could see that it was processing my certificate MOST of the times...</div><div style><span style="font-size:12.8000001907349px"><b>screenshot here</b>: <a href="http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg">http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg</a></span><br><div class="" dir="ltr" style="font-size:12.8000001907349px"><div id=":tc" class="" tabindex="0"><div class=""></div></div><div id=":td" class="" tabindex="0"><div class=""></div></div></div></div><div style="font-size:12.8000001907349px">- some other times, it seemed to bypass my proxy altogether and I finally figured out it was because Chrome will try to access QUIC enabled websites using that protocol, so it would bypass my firewall redirect rules! I believe I now have solved this by blocking FORWARDING traffic on port 443 udp...</div><div style="font-size:12.8000001907349px">- the weird thing is that, if I then try and access <a href="https://gmail.com/" target="_blank">https://gmail.com</a>, I get a certificate error:</div><div style><span style="font-size:12.8000001907349px"><b>screenshot here</b>: <a href="http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg#1">http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg#1</a></span></div><div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">- ...though, sometimes, I can access </span><a href="https://mail.gmail.com/" target="_blank" style="font-size:12.8000001907349px">https://mail.gmail.com/</a><span style="font-size:12.8000001907349px"> just fine (without any certificate errors), but stop being able to as soon as I try to access </span><a href="https://gmail.com/" target="_blank" style="font-size:12.8000001907349px">https://gmail.com/</a><span style="font-size:12.8000001907349px"> and the browser complains about the certificate.</span></div><div style="font-size:12.8000001907349px">-- and, according to my tests, I can access it from firefox just fine MOST of the times:</div><div style><span style="font-size:12.8000001907349px"><b>screenshot here</b>: <a href="http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg#2">http://imgur.com/JsNiqDL,Ned5zAU,nJjRPtg#2</a></span></div><div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">-- though I have also seen situations where Firefox also complains about a certificate error when connecting to </span><a href="http://gmail.com/" target="_blank" style="font-size:12.8000001907349px">gmail.com</a><br></div><div style="font-size:12.8000001907349px">- and, although I cannot reproduce it 100% of the times, sometimes, even though I have my iptables redirect rules ON, the browser still seems to "connect direct" (or, at least, it shows it has the original certificate)!</div><div style="font-size:12.8000001907349px">-- like I said, at first, I was able to trace this back to QUIC in Chrome but...I'm currently blocking traffic on port 443 udp so I don't know what's happening here (does it use different ports?!)</div><div style="font-size:12.8000001907349px"> </div><div style="font-size:12.8000001907349px">So, here are <b>my questions</b>:</div><div style="font-size:12.8000001907349px">- why am I able to successfully ssl-bump <a href="https://www.google.com/" target="_blank">https://www.google.com</a> but not <a href="https://gmail.com/" target="_blank">https://gmail.com/</a></div><div style="font-size:12.8000001907349px">- why does the Chrome freakout about gmail but not Firefox?</div><div style="font-size:12.8000001907349px">- Is there a way to fix it OR, at least, to bypass it? (I tried creating an ACL for this and allowing direct traffic but it didn't seem to work...)</div><div style="font-size:12.8000001907349px">-- can we make the connection go direct when ssl certificate errors are detected?</div><div style="font-size:12.8000001907349px">- and has anyone else seen this problem where the browser seems to use the original certificate, even though I'm redirecting traffic to Squid?</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Not sure if this is relevant, but here are some ssl errors I caught on my cache.log file:</div><div style="font-size:12.8000001907349px"><div>root@server:/var/log/squid3# tail cache.log<br></div><div><div>2015/02/05 21:47:52 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 30: Closed by client</div><div>2015/02/05 21:48:23 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 30: Closed by client</div><div>2015/02/05 21:48:36 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 96: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca (1/0)</div><div>2015/02/05 21:48:54 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 105: Closed by client</div><div>2015/02/05 21:49:15 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 79: Broken pipe (32)</div><div>2015/02/05 21:49:15 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 54: Broken pipe (32)</div><div>2015/02/05 21:49:24 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 79: Closed by client</div><div>2015/02/05 21:49:55 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 26: Closed by client</div><div>2015/02/05 21:50:26 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 45: Closed by client</div><div>2015/02/05 21:50:56 kid1| clientNegotiateSSL: Error negotiating SSL connection on FD 68: Closed by client</div><div>root@server:/var/log/squid3#</div></div></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">By the way, here's how I generated my certificate:</div><div style="font-size:12.8000001907349px">openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem</div><div style="font-size:12.8000001907349px">openssl x509 -in myCA.pem -outform DER -out certificate.der</div><div style="font-size:12.8000001907349px">(note: myCA.pem is the certificate that squid is using and certificate.der is the one I've been installing on the client computers)</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">And here's what my current squid.conf looks like:</div><div style="font-size:12.8000001907349px"><div>root@server:/etc/squid3/ssl_cert# cat /etc/squid3/squid.conf</div><div>#Access Lists</div><div>acl home_network src <a href="http://192.168.200.0/24" target="_blank">192.168.200.0/24</a></div><div><br></div><div>#Ports allowed through Squid</div><div>acl Safe_ports port 80 #http</div><div>acl Safe_ports port 443 #https</div><div>acl SSL_ports port 443</div><div>acl SSL method CONNECT</div><div>acl CONNECT method CONNECT</div><div><br></div><div>#allow/deny</div><div>http_access allow home_network</div><div>http_access deny !Safe_ports</div><div>http_access deny CONNECT !SSL_ports</div><div>http_access deny all</div><div><br></div><div>http_port 3128</div><div>http_port 3129 intercept</div><div>https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/myCA.pem</div><div>acl broken_sites dstdomain .<a href="http://gmail.com/" target="_blank">gmail.com</a></div><div>ssl_bump none localhost</div><div>ssl_bump none broken_sites</div><div>ssl_bump server-first all</div><div>sslcrtd_program /usr/lib/squid3/ssl_crtd -s /usr/share/squid3/var/lib/ssl_db -M 4MB</div><div>sslcrtd_children 5</div><div><br></div><div>#caching directory</div><div>cache_dir ufs /var/spool/squid3 1024 16 128</div><div>cache_mem 1024 MB</div><div><br></div><div>#refresh patterns for caching static files</div><div>refresh_pattern ^ftp: 1440 20% 10080</div><div>refresh_pattern ^gopher: 1440 0% 1440</div><div>refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private</div><div>refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-no-store ignore-private</div><div>refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private</div><div>refresh_pattern -i \.index.(html|htm)$ 0 40% 10080</div><div>refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320</div><div>refresh_pattern . 0 40% 40320</div><div><br></div><div>dns_nameservers 8.8.8.8</div><div><br></div><div>#rewrite program</div><div>redirect_program /etc/squid3/filter.php</div><div>root@server:/etc/squid3/ssl_cert#</div></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Thanks in advance,<br></div><div style="font-size:12.8000001907349px">Luis</div></div>