-
Notifications
You must be signed in to change notification settings - Fork 40
Rely on the generated CA certificate location when deploying the CA cert #492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
06d407a to
a49f416
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the direction, but CI doesn't like you.
|
See #488 (comment) about the failure |
e81090e to
414176d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
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