Replies: 1 comment 3 replies
-
I think there may be an issue with our documentation here. It's also worth mentioning that you don't need |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello,
I'm currently testing
step-ca
and I think it's a great tool. I want to migrate my existing CA setup tostep-ca
because it seems to cover all the features I want.I do value the idea of short lived certificates and passive revocation and want to use it wherever possible. However, I think there will always be some leaf certificates whose issuance can't really be automated and therefore the need for longer lifetimes. Thus it makes sense to use active revocation as well.
step-ca
's built-in CRL server seems to be the solution for this.While planning my new setup I was also thinking about lifecycle management and rotating CA certificates. Unfortunately, there is something that gives me a headache when it comes to rotating CA certificates and the issuance of the CRL. If I understand RFC 5280 correctly, the CRL has to be signed by the same issuer as the certificates issuer (otherwise the cRLIssuer field must be present alongside the cRLDistribituionPoint). I'm not sure my interpretation is correct, though. So, imagine the following setup:
Intermediate 2 has been created because Intermediate 1 will reach end of its lifetime soon. Leaf Cert A is still valid (expires before the Intermediate 1 expiration date). Intermediate 1 is no longer signing new certificates because Intermediate 2 is in operation (active intermediate certificate for
step-ca
). Leaf Cert B has been signed by Intermediate 2. Now, I revoke Leaf Cert A. Leaf Cert A should be listed on the CRL. The CRL will be signed by Intermediate 2, which is not the issuer of Leaf Cert A. I assume this may cause issues (especially when the subjects of the Intermediates differ) or am I missing something?To circumvent this issue I thought about running multiple step-ca instances behind a reverse proxy for each generation of Intermediate CA, each with its own CRL DistributionPoint. This way the Distribution Point will be tied to the Intermediate Certificate. On the reverse proxy API endpoints for
step-ca
will always point to the "active" Intermediate. Revocation on the "old" CA be done withstep-cli
directly (not via reverse proxy).However, this seems to cause another issue if I want to keep the ACME accounts when moving to a new "active" Intermediate CA. I guess, this can be solved by copying the badger DB. But the database also contains information about the certificates signed by the "old" Intermediate CA which are not needed anymore. I would be nice to start with a "clean" DB only with the needed accounts. Not sure how to solve this, as I don't want to fiddle around with the DB itself.
So, what's the best way to handle this?
A little side note: The "Consider Active Revocation" chapter in the Production Considerations guide in the docs confused me, because it suggests that the Intermediate CA can sign it's own CRL. I thought the Root CA would have to sign the CRL for any Intermediate CA. What am I missing here?
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions