docs(mender-gateway): clarification regarding intermediate ca#2744
docs(mender-gateway): clarification regarding intermediate ca#2744oldgiova wants to merge 2 commits into
Conversation
nt-alan
left a comment
There was a problem hiding this comment.
AFAIC a table only makes it too complicated to practically digest and is crammed in the wrong section (section tries to solve too many things at once).
I would rather have it here:
https://docs.mender.io/server-integration/mender-gateway/mutual-tls-authentication
as a separate chapter on gateway cert rotations.
And instead of a table a working example.
b6c3d48 to
419a2aa
Compare
Docs refactored |
| ## Rotating the intermediate CA | ||
|
|
||
| To rotate, generate a new intermediate CA signed by the same Root CA. New devices get certificates signed by the new intermediate CA and present the new chain. Devices already in the field continue working — no gateway change required. | ||
|
|
There was a problem hiding this comment.
| You would rotate the intermediate CA if the old one is about to expire or if you have suspicions it was compromised. For the expiration case the old certificate will just stop being valid as some point it time, but for the compromised case you need to take explicit action. | |
| !! For case of a compromised certificate you will need to___ **do what?** |
There was a problem hiding this comment.
I think this is a good call for a dedicated section like: "how to deal with a compromised certiifcate"
| cat device-v2.crt intermediate-ca-v2.crt > device-v2-chain.pem | ||
| ``` | ||
|
|
||
| The gateway accepts both `device-chain.pem` (v1) and `device-v2-chain.pem` (v2) because both intermediate CAs chain up to the trusted Root CA. Decommission v1 devices at your own pace. |
There was a problem hiding this comment.
| The gateway accepts both `device-chain.pem` (v1) and `device-v2-chain.pem` (v2) because both intermediate CAs chain up to the trusted Root CA. Decommission v1 devices at your own pace. | |
| The gateway accepts both `device-chain.pem` (v1) and `device-v2-chain.pem` (v2) because both intermediate CAs chain up to the trusted Root CA. Update the v1 certificates on the devices at your own pace. |
Reads weird that you'd be decommission devices just for a cert change.
nt-alan
left a comment
There was a problem hiding this comment.
Thanks, much better readability.
Seems to be a difference between a "expiring intermediate certificate" and "revoking a intermediate certificate".
With the naive setup we had a rotation would solve the revoking part as well, but with this setup the revoked certificate needs some kind of dedicated blackilisting.
That step seems to be missing.
Once we solve that, I think we should just default to this kind of key generation for the default gateway evaluation instead having multiple different ways.
The intermediate CA could stay at the client side, and it's a suggested approach for easy certificate rotation. This new section should clarify that. Signed-off-by: Roberto Giovanardi <roberto.giovanardi@northern.tech>
419a2aa to
5045e35
Compare
Added to a dedicated section. However please note that to address a compromised cert it's not enough to just change the CA; most of the time you also have to replace the full root CA |
5045e35 to
ac5250c
Compare
This section is about security hardening, for now limited to just certificate compromised and incident response, but could be extended in the future Signed-off-by: Roberto Giovanardi <roberto.giovanardi@northern.tech>
ac5250c to
486df3c
Compare
|
@oldgiova I want to set the intermediate CE setup as the default case for the mtls eval. Lets see how it goes, feel like we can share a cup of coffee to agree on the high level structure, so whoever ends up working on this first can send the coffee invite :) |

The intermediate CA could stay at the client side, and it's a suggested approach for easy certificate rotation. This new section should clarify that.
External Contributor Checklist
🚨 Please review the guidelines for contributing to this repository.
The majority of our contributions are fixes, which means your commit should have
the form below:
git --signoff. Also note that the signoff author must match the author of the commit.Description
The intermediate CA could stay at the client side, and it's a suggested approach for easy certificate rotation. This new section should clarify that.
Thank you!
Co-authored-with: Claude