<snip>
So we have recently implemented the pem based storage options, but in
the passed we pushed people to use the truststore configuration
instead:
http://docs.puppetlabs.com/puppetdb/1.5/configure.html#truststore
This forced a user to create a traditional JKS store and put their CA
certificates in that. I haven't tested it, but this probably accepts
multiple CA certificates. Have you tried this yet? I would need to run
up a test myself to do this, if this sounds sort of like what you are
after happy to help. I'm not positive it works - but this feels like
the way to do it for now.
If it doesn't work, we can work towards solving it properly, but going
forward, the ability to specify multiple ca certificates for the
ssl-ca-cert setting sounds like another viable option:
http://docs.puppetlabs.com/puppetdb/1.5/configure.html#ssl-ca-cert
> Hope this makes sense! I see a few different ca.pem files, but am unsure if
> I can just start concatenating stuff onto these and whether that will break
> puppetmaster's signing, etc.
Hmm. Not sure either, probably won't work.
<snip>
So I think I understand, what you are saying is that the client
refuses to accept the PuppetDB's server certificate, because its not
signed by its own CA? This is not a client certificate thing, my point
is - purely server side certs. Right? Because your PuppetDB's server
cert is signed with a more global different CA, it doesn't work yeah?
> It would be really nice if there was a way to say "hey, puppet[master] for
> your outbound https connections, here's a ca-bundle.pem you can use to
> verify servers". The idea that we'd use the puppetmaster CA *seems* wrong
> here. Especially in an environment like ours where we have many (dozens) of
> puppetmasters that each manage their own little ecosystems. (And we don't
> really want to force a single CA.)
Yeah, its wrong in your multi-CA scenario for sure. We totally just
use the HTTP libraries Puppet provides us and all its cert
assumptions, for simplicity I guess. At least, it works for single-CA
scenarios just fine.
We could look into providing a feature for this probably. The change
would probably need to occur in the puppetdb-terminus code and an
option added to /etc/puppet/puppetdb.conf most probably.
Although if Puppet itself supported multiple CA bundles, this wouldn't
happen - I think the fix is more elegant in Puppet as all
clients/termini/plugins using their HTTP libraries would just work for
multi-ca without each one having to do its own thing.
> Following up: http://projects.puppetlabs.com/issues/23180
So someone else was discussing this on IRC, was it you? I'm just
asking because I was trying to remember if there was another user
trying to do a similar thing.
> Thanks again. I think I spent enough time to figure out how I can hack thisMy local git branches are full of hacky patches, that upon scrutiny
> in the short term, though would love to see this accepted! I'm happy to
> provide the hack diff that we'll use, though I am positive that you'd not
> want to just merge that. This is probably my second time writing any Ruby
> code :)
aren't the 'final solution' ... lol :-). But workarounds are _always_
welcome, so at least users aren't completely road-blocked when they
find the bug :-). So please, add whatever you find to the ticket, it
helps.