Rely on the generated CA certificate location when deploying the CA cert#492
Rely on the generated CA certificate location when deploying the CA cert#492ehelms wants to merge 1 commit intotheforeman:masterfrom
Conversation
06d407a to
a49f416
Compare
ekohl
left a comment
There was a problem hiding this comment.
I like the direction, but CI doesn't like you.
|
See #488 (comment) about the failure |
e81090e to
414176d
Compare
ekohl
left a comment
There was a problem hiding this comment.
Sorry, I merged my PR and created a merge conflict.
353bd52 to
cd1b917
Compare
cd1b917 to
4e8ac6e
Compare
|
Still relevant for a few othe rclasses, @ekohl what do you think about an approach that uses: And then makes |
Depends. Today we have code calling One thing we should consider is for the server side certificates is to use bundles where both the public key and the chain is included. Then we don't pass in the CA at all anymore. We'll need to verify this when a users passes them in, but it could simplify things. |
4e8ac6e to
2b61301
Compare
|
The more I think about it, I don't think that |
Signed-off-by: Eric D. Helms <ericdhelms@gmail.com>
2b61301 to
56e5e5e
Compare
|
Partly you're right: you really need to serve the chain. The client should already have the root CA, but you do need to serve the intermediates. For example: Here you can see certificate 0 is the server certificate, which you obviously need to serve. Then we also see the intermediate CA ( What you can do is mandate the intermediate CA is included in the If you ever looked at what certbot does then you see it writes out 4 files:
Now you can configure Apache with: The deprecated way (that we today still use in our installer): And This is pretty easy to build for our default CA: we're in control. However, we're not for what users input and I'd struggle to come up with a good way to prevent users to shoot themselves in the foot. This is why I'd love to adopt ACME, which is what Let's Encrypt came up with. These days it's also implemented by others, including dogtag (the CA component of FreeIPA). |
|
I am writing up a "future" certificate design with the guidelines we want to abide by as part of the foreman-quadlet research repository. This is great input to that, but I don't think I should include any of it here, specifically in this PR. I am aiming to mostly cleanup this puppet module to make it easier to consume in our future states by more clearly splitting generate and deploy, and deploying certificates to the locations they are needed for the service that needs them there. Nearly all of these service classes are not used stand-alone anywhere today, and nor were they really designed to be even though they exposed parameters that would lead one to think that. The removed parameter |
|
I get that and it was me thinking zoomed out and comparing to a desired state before zooming back in again. |
|
Cool - thoughts then on this specific change being good to merge? |
The
/etc/pki/katellolocation for the CA certificate is needed by the Apache service and not as a general purpose location for the CA certificate. Other services that have certificates can rely on the CA from thessl-builddirectory when deploying rather than an intermediate step that has it deployed to the Apache needed location. This should give a bit better separation of concerns.Requires - #487