-
Notifications
You must be signed in to change notification settings - Fork 578
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
Make existing intermediate/multi-root CA handling perfect #9798
Comments
80a405a hints that it doesn't work, but it just has the same problem with strange error messages as the intermediate stuff. Actually it seems to work. E.g. even with
But with the below ones appended to
|
Test protocol
Result
ConclusionAt least multiple root CAs with the same name don't work. |
Test protocol IISame as above, but with distinct CA names 🙈
Works. Just works. |
Status quo
Trusting only external intermediate CA #7719
i.e. making it Icinga's effective root CA.
See #7719 (comment) . In short, one has to cross-self-sign the intermediate CA and to use the result as Icinga's root CA. Also works w/o sharing CA keys with Icinga if all leaf certs are provided manually.
Using intermediate CAs like everyone else
Icinga-owned intermediate CA
i.e. Icinga signs leaf certs by itself with an intermediate CA in
/var/lib/icinga2/ca/ca.*
while its root CA is still in/var/lib/icinga2/certs/ca.crt
.Doesn't work, yet. External intermediate CAs work (see below), but at least when it comes to CSR handling, Icinga doesn’t take the whole chain into account.
External intermediate CAs
I'm such sort of a fool. 🙈 #8859 (comment)
I thought they don’t work. But they work. Don't ask me why. Probably because of how OpenSSL works:
Apropos! We validate certs not only during handshakes, but also explicitly. However we never consider chains, not even in CSR handling. That's why we get strange error messages like this:
[2023-06-21 16:54:42 +0000] information/JsonRpcConnection: Received certificate request for CN 'aklimov-intca-2.novalocal' not signed by our CA: unable to get local issuer certificate (code 20)
So it basically works, but it's not perfect.
Test protocol
Now, if I fire up the Icingas, they recognise each other. With config acceptance enabled in the API feature they even sync config to each other.
And... now what?
@sircubbi, you have already made PRs in this topic and seem to understand it IMAO. Depending on what you need, please do any of the following. The headings are independent of each other, but the bullets per heading should be done in their order. At best even one after the other's merged, to save worktime. Finally (or even before) indicate what you won’t (need and) do.
Intermediate CAs
(force push try to allow certificate-chains #8859)Multiple roots
A little off-topic, butyou've already done something on it: #8859 (comment)/var/lib/icinga2/certs/ca.crt
. Either report success or make a new PR.The text was updated successfully, but these errors were encountered: