On Fri, 2012-08-17 at 16:00 -0700, opoplawski wrote:
> I've configured our DMZ apache webserver to proxy connections from our
> roaming users into our internal puppet master running under
> passenger/apache. Everything is pretty much working but because I am using
> SSL between the proxy server and the puppet master, the master treats the
> connection as authenticated as the proxy. My current work around is to
> allow access to all catalog and node items to the proxy server in
> auth.conf. I'd like to try to get the master to use the ssl authentication
> information passed by the proxy as the authentication for the connection
> but so far have been completely unsuccessful. Does anyone know how this
> can be done? I've been poking around the code a bit but I haven't been
> able to find out where the authenticated host information comes from, and
> I've unable to modify anything in the apache configuration to change this.
To start with, I'm going to assume that the passenger/apache
configuration looks something like this:
http://docs.puppetlabs.com/guides/passenger.html#apache-configuration-for-puppet-024x
and that your proxy server apache configuration probably looks something
like this:
http://projects.puppetlabs.com/projects/puppet/wiki/Using_Mongrel#Apache-Configuration
If you read through, you note that the authenticated host information
gets passed to puppet through the three headers that are set by apache:
X-SSL-Subject, X-Client-DN, X-Client-Verify.
The trick to getting your case to work is to edit the puppet master's
passenger/apache configuration to pass through the values of these three
headers when receiving a request from the proxy server, instead of
filling them in from the ssl certificate. I'm not familiar enough with
apache to know the exact syntax for this.
Do note that you want to make sure to *only* pass through these headers
when receiving a request from the proxy server! Otherwise any client
could connect, even on unsecured HTTP, and pretend to be authenticated
as whomever it wants by just adding headers to the request.
--
Calvin Walton <
calvin...@kepstin.ca>