Search squid archive

RE: Did request come via SSL?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here's how I tackled this issue...I set up two virtual hosts in Apache,
then did the following in my Squid.conf:

acl httpreq port 80
acl httpsreq port 443

cache_peer 127.0.0.1 parent 8100 0 no-query originserver login=PASS
name=nonsecure
cache_peer 127.0.0.1 parent 8101 0 no-query originserver login=PASS
name=secure

cache_peer_access nonsecure allow httpreq
cache_peer_access nonsecure deny httpsreq
cache_peer_access secure allow httpsreq
cache_peer_access secure deny httpreq

http_port       80 vhost
https_port X.X.X.X:443 cert=/etc/squid/ssl/castest.crt
key=/etc/squid/ssl/castest.key defaultsite=castest.esri.com

etc...
(where X.X.X.X is the real IP used on the box for this particular SSL
site)

Apache config bits:
Listen 8100
Listen 8101
NameVirtualHost *:8100
NameVirtualHost *:8101

In this case, Apache runs on the same box as Squid, but on port 8100
(non-secure virtual host) and 8101 (secure virtual host).  I then have
Apache also configured as a reverse proxy and use name-based virtual
hosts on both ports.  In this manner, I have several sites hosted
through one set of reverse proxies and each site can have a different
config for SSL versus non-SSL portions of the site.

As to why we use both Squid and Apache for our reverse proxy, I prefer
using Squid for caching, but I use Apache for doing any mod_proxy or
mod_rewrite mojo and to filter requests through ModSecurity.

Jeff Tharp
System Administrator
ESRI, Redlands, CA
http://www.esri.com

> -----Original Message-----
> From: Henrik Nordstrom [mailto:henrik@xxxxxxxxxxxxxxxxxxx] 
> Sent: Monday, May 21, 2007 3:30 PM
> To: Grant McLean
> Cc: squid-users@xxxxxxxxxxxxxxx
> Subject: Re:  Did request come via SSL?
> 
> tis 2007-05-22 klockan 10:02 +1200 skrev Grant McLean:
> > Hi All
> > 
> > I'm setting up Squid for the first time, in accelerator 
> mode in front of
> > an Apache/mod_perl app.  Squid is listening on both port 80 
> (HTTP) and
> > port 443 (HTTPS).  The basics (including SSL cert stuff) 
> are working but
> > I've hit a bit of a road block.
> > 
> > Is there any way to tell that a particular request came in 
> on the SSL
> > port?
> 
> Yes.
> 
> To have this forwarded to the backend server see the front-end-https
> cache_peer option.
> 
> To detect this within Squid see the myport acl, or alternatively the
> proto acl (but see below).
> 
> > It would be even better if I could achieve the redirect 
> magic using a
> > squid redirector script, but once again, there doesn't seem to be
> > sufficient information passed to the redirector for it to 
> know if the
> > request came over a secure channel.
> 
> Well, for browsers you have the protocol. https vs http.
> 
> But technically an http client could send a fully qualified 
> https:// URI
> without using SSL if they insist on it so it's not a 100% indication
> that the request was received encrypted on an https_port.
> 
> > Strangely, when I was playing around with this on Friday, I 
> could have
> > sworn that the redirector script was receiving URLs that 
> started with
> > 'https', but I can't reproduce that today so I must have 
> imagined it :-)
> 
> It does.. at least unless
> 
> a) You tell your https_port to use http as the protocol identified.
> 
> or
> 
> b) If you are using Squid-2.5 and not the currently supported 2.6
> version. The https_port support in Squid-2.5 isn't very friendly..
> 
> Regards
> Henri
> 


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux