Using ACME to issue Sub CA certs #385
Replies: 3 comments 1 reply
-
Hey @alexmartinio, thanks for opening a discussion! Just want to make sure I understand your question. You basically want to sign Intermediate certificates using the ACME protocol. Is that right? If so, great question. This is possible with Basically you'd have a template like this one:
That always set the isCA property to true. You could then add something like:
So that any downstream certificates had to be subdomains of the subCA, if you wanted. Careful using your CA to generate subCAs - especially with the ACME protocol. If I gain access to your infrastructure and manage to get an ACME cert I can then go and create my own certificates for anything I want. Using something like |
Beta Was this translation helpful? Give feedback.
-
Welp, this question became my challenge for today. The answer seems to be that you can definitely sort of do this, but it's by no means streamlined and you're gonna need to really do your homework. As @dopey mentioned above, it's not strange so much as it is potentially dangerous. You'll need to use certificate templates, and you should be aware that ACME is only doing domain validation and if you set this up naively (as my example does) anyone who can connect to your ACME CA will be able to get an intermediate signing certificate and use it to sign any leaf certificate(s) they want. You can probably combine what I've done with the technique for filtering certificate requests by subject domain name in our certificate templates blog post. Anyways, without further ado, here's an example of this working end-to-end: https://gist.github.com/mmalone/f461643e927f8fb7e8eafebf31a57a17 There are a bunch of caveats and limitations. I'm sure I'm missing some of them, but here are a few:
This all feels very confusing and I'm pretty sure it's not going to make any sense. It may be better to just look at the code. I'm also happy to answer questions. Final thought: what are you really trying to do here? Are you sure this is the right solution? Not saying it's not, but if you can share more details about your use case / requirements we may be able to suggest alternatives. |
Beta Was this translation helpful? Give feedback.
-
Haha apologies for the challenging question! I realise you would never really want to do this in the real world (definitely potentially dangerous!). So the scenario is, we have a demo environment with multiple labs. Each lab has its own Root certificate authority (currently Windows ADCS Root CA). The biggest problem right now is that it's difficult to revoke all the issued certificates for a single lab. Since this all needs to be done automagically I was looking to see if this could be achieved using the ACME protocol to sign each created Windows ADCS Subordinate. So I think it might look something like this:
If we want to revoke the Lab 1 for example, could we then ask |
Beta Was this translation helpful? Give feedback.
-
This may be a strange use case.
Can we use step-ca as our Root CA and use the ACME protocol to submit a Sub CA signing request automatically?
For example:
When setting up a Windows Subordinate CA you get the CSR, to be signed by the Root CA, this is what I'm wanting to know if we can use with the ACME protocol.
Looking to use the Ansible ACME modules to deploy Subordinate CAs automatically.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions