<div dir="ltr">Hi,<div><br></div><div>I'm using squid 3.5.19 on RHEL6 and have configured SSL bump, which for the most part is working great.</div><div>The issue I have is I need to install some additional CA certs that are not provided by the ca-certificates-2015 RPM in the /etc/pki/tls/cert.pem file (symlinked to /etc/pki/tls/certs/ca-bundle.crt).</div><div>I've tried adding both the cafile and capath options to the http_port entry but neither seems to have any affect.</div><div>With the cafile option I can see squid open the file via an strace but when I connect to the server it fails with a 503 as the SSL session to the remote side is failing to verify.</div><div>With the capath option, strace shows that squid never attempts to open any files in that directory.</div><div>Dynamic certificate generation between squid and the client is working fine however.</div><div><br></div><div><br></div><div>cafile strace (strace -fp <squid_pid> -e trace=open):</div><div><br></div><div><div>[pid 27532] open("/var/lib/ssl_db/index.txt", O_RDWR) = 3</div><div>[pid 27532] open("/var/lib/ssl_db/index.txt", O_RDONLY) = 4</div><div>[pid 27532] open("/etc/localtime", O_RDONLY) = 4</div><div>[pid 27532] open("/var/lib/ssl_db/certs/3EA5A8686DE52F6FBED1CD16F119603FF223563F.pem", O_RDONLY) = 4</div><div>[pid 27532] open("/var/lib/ssl_db/certs/3EA5A8686DE52F6FBED1CD16F119603FF223563F.pem", O_RDONLY) = 4</div><div>[pid 27528] open("/etc/squid/ssl/cafile.pem", O_RDONLY) = 13</div><div>[pid 27528] open("/etc/pki/tls/cert.pem", O_RDONLY) = 13</div><div>[pid 27532] open("/var/lib/ssl_db/index.txt", O_RDWR) = 3</div><div>[pid 27532] open("/var/lib/ssl_db/index.txt", O_RDONLY) = 4</div><div>[pid 27532] open("/var/lib/ssl_db/certs/666F7FE36508EC9B6E154D4FA0AE36DAFE9AC520.pem", O_RDONLY) = 4</div><div>[pid 27532] open("/var/lib/ssl_db/certs/666F7FE36508EC9B6E154D4FA0AE36DAFE9AC520.pem", O_RDONLY) = 4</div><div>[pid 27528] open("/etc/squid/ssl/cafile.pem", O_RDONLY) = 13</div><div>[pid 27528] open("/etc/pki/tls/cert.pem", O_RDONLY) = 13</div><div>[pid 27528] open("/etc/squid/ssl/cafile.pem", O_RDONLY) = 13</div><div>[pid 27528] open("/etc/pki/tls/cert.pem", O_RDONLY) = 13</div></div><div><br></div><div><br></div><div>Subsequent error in the access log:</div><div><br></div><div><div>[29/Jun/2016:18:46:30 +1000] 198.142.126.173 TAG_NONE:HIER_DIRECT/200 "CONNECT <a href="http://www.example.com:443">www.example.com:443</a> HTTP/1.1" - <a href="http://www.example.com">www.example.com</a> 130 0 - 14</div><div>[29/Jun/2016:18:46:30 +1000] 198.142.126.173 TAG_NONE:HIER_NONE/503 "GET <a href="https://www.example.com/postorders/postorders.php">https://www.example.com/postorders/postorders.php</a> HTTP/1.1" - - 249 4699 - -</div></div><div><br></div><div><br></div><div>Relevant config:</div><div><br></div><div><div>sslproxy_options NO_SSLv2</div><div>sslproxy_cert_sign signTrusted</div><div>sslproxy_cert_sign_hash sha1</div><div>sslcrtd_children 8 startup=1 idle=1</div><div><br></div><div>acl step1 at_step SslBump1</div><div>ssl_bump peek step1 sslbump_src</div><div>ssl_bump bump sslbump_dst sslbump_src</div><div><br></div><div>ssl_bump none all</div><div><br></div><div>#http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=8MB capath=/etc/squid/ssl/cacerts/ key=/etc/squid/ssl_cert/mitm_root_ca.key  cert=/etc/squid/ssl_cert/mitm_root_ca.crt</div></div><div>http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cafile=/etc/squid/ssl/cafile.pem key=/etc/squid/ssl_cert/mitm_root_ca.key  cert=/etc/squid/ssl_cert/mitm_root_ca.crt<br></div><div><br></div><div><br></div><div>I can work around the issue by appending the additional CA certs to the Redhat managed /etc/pki/tls/certs/ca-bundle.crt file but this is not ideal.</div><div><br></div><div>Are the cafile and capath options supposed to work like this i.e. do they allow you to complement the OS supplied CA certs for remote site verification or have I completely misread the documentation?</div><div><div><br></div><div>cafile=<span class="" style="white-space:pre">     </span>File containing additional CA certificates to</div><div><span class="" style="white-space:pre">              </span>use when verifying client certificates. If unset</div><div><span class="" style="white-space:pre">           </span>clientca will be used.</div><div><br></div><div>capath=<span class="" style="white-space:pre">     </span>Directory containing additional CA certificates<br></div><div><span class="" style="white-space:pre">          </span>and CRL lists to use when verifying client certificates.</div></div><div><br></div><div>Many thanks and any help greatly appreciated,</div><div>Bruce</div><div><br></div><div><br></div></div>