On Apr 29, 2012, at 10:36 PM, Amos Jeffries wrote: > On 28/04/2012 10:37 a.m., Squid Tiz wrote: >> I am kinda new to squid. Been looking over the documentation and I just wanted a sanity check on what I am trying to do. >> >> I have a web client that hits my squid server. The squid connects to an apache server via ssl. >> >> Here are the lines of interest from my squid.conf for version 3.1.8 >> >> http_port 80 accel defaultsite=123.123.123.123 >> cache_peer 123.123.123.123 parent 443 0 no-query originserver ssl sslflags=DONT_VERIFY_PEER name=apache1 >> >> The good news is, that works just as I hoped. I get a connection. >> >> But I am questioning the DONT_VERIFY_PEER. Don't I want to verify peer? > > Ideally yes. It is better security. But up to you whether you need it or not. > It means having available to OpenSSL on the squid box (possibly via squid.conf settings) the CA certificate which signed the peers certificate, so that verification will not fail. > >> >> I simply hacked up a self signed cert on the apache server. Installed mod_ssl and restarted apache and everything started to work on 443. >> >> On the command line for the squid server I can curl the apache box with: >> >> curl --cacert _the_signed_cert_from_the_apache_node_ https://apache.server >> >> Is there a way with sslcert and sslkey to setup a keypair that will verify? > > They are for configuring the *client* certificate and key sent by Squid to Apache. For when Apache is doing the verification of its clients. > > Squid has a sslcacert= option which does the same as curl --cacert option. For validating the Apache certificate(s). > >> Do I need a signed cert? > > Yes, TLS requires signing. Your self-signing CA will do however, so long as both ends of the connection are in agreement on the CA trust. > >> >> I tried to add the cert and key to the cach_peer line in the config. Squid did restart. But no connection. Why would curl work but not squid? >> > see above. > > Amos Amos, Thanks for the reply. I was just curious to see if I good get this to fly. The goal is to attach to the squid server via http and have squid verify and attach to the SSL server using a self signed cert. This seems to work. Squid starts OK and my logs are clean. No validation errors. Comments appreciated. Create the CA stuff on the apache server: Key openssl genrsa -des3 -out ca.key 4096 CRT openssl req -new -x509 -days 3650 -key ca.key -out ca.crt Create a server cert: Key openssl genrsa -des3 -out server.key 4096 CSR openssl req -new -key server.key -out server.csr CRT openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt Then go a head and install these certs on the server. Test the server on port 443/SSL etc. Then create a client cert: Key openssl genrsa -des3 -out client.key 2048 CSR openssl req -new -key client.key -out client.csr CRT openssl ca -in client.csr -cert ca.crt -keyfile ca.key -out client.crt Touch up the key - don't want to enter the password on start-up. openssl rsa -in client.key -out client.key.insure mv client.key client.key.secure mv client.key.insecure client.key Then take the ca.crt, the client.key and the client.crt and deploy them on the squid server. Update the /etc/hosts file: ip-address cn-name-of-apache-server Then the squid.conf: http_port 8080 accel defaultsite=cn-name-of-apache-server cache_peer cn-name-of-apache-server parent 443 0 no-query originserver ssl \ sslcafile=/path/ca.crt sslcert=/path/client.crt sslkey=/path/client.key name=yum1 -- Regs -Dean