Configuring an RSA root and intermediate X.509 CA #379
-
One part I'm not familiar with a CA is if they're meant to only have/provide the single root/intermediate. I know with LetsEncrypt that they use an RSA root for signing both RSA/ECDSA leaf certs, but they've talked about a full ECDSA chain, does that require the ACME client to interact with a different endpoint, or can the ACME client provide some hint once that would be available? How would similar be achieved with step-ca? Two roots and intermediates...two instances? Looking at the |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 10 replies
-
Hi @polarathene, I'm not sure how Let's Encrypt is going to do their full-chain ECDSA service, but with Does this help? |
Beta Was this translation helpful? Give feedback.
-
step-ca doesn't support using different root/ intermediate keys for different provisioners at this time. As @tashian said, you can create a new root and intermediate chain using step certificate create --profile and replace the values in ca.json to use your newly created ones. But then all certificates will be signed using the new RSA keys. |
Beta Was this translation helpful? Give feedback.
-
@polarathene As @dopay says, provisioners do not support different chains. So if you want to support 2+ different intermediates sharing the same root or 2+ different chains you will need 2+ instances. With 2+ different chains, you can add the root for instance2 as a federated certificate in the instance1, and the same the other way around. With that, you can use |
Beta Was this translation helpful? Give feedback.
-
There's a few conflating concepts here so I'll try to pull them apart a bit - note I'm no expert either. So, suppose you've initialized your PKI with a root and intermediate cert which are both ECDSA, as we do by default. That means that when you sign incoming certificate requests (CSRs) the signature algorithm on those new certificates will be some form of ecdsa sig algorithm. If you the user requests that the signature algorithm must be of some RSA type, step-ca will not be able to create a valid certificate, because it does not have an RSA intermediate certificate. Most leaf certificates do not request a particular signing algorithm (in my experience) but rather let the server decide the most appropriate algorithm based on the key the server is using to sign. Now let's talk about CSRs briefly. When you generate a CSR you generate a public / private key pair and the public part of that pair is stored in the CSR. That key has no influence on the signing key or the signing algorithm. You could create a CSR using a RSA key, and your CA can sign that CSR using an ECDSA key. The signing key and the key in the CSR are two completely separate things. So, your ACME client might generate CSRs with RSA keys, but you can still sign those using an ECDSA key (which step-ca does by default). Or if you'd prefer you can sign them using an RSA key. You just have to configure your CA to use RSA keys. Unless you have a particular need to use an RSA signature algorithm (e.g. some software doesn't support ecdsa signature algorithms), we recommend you use the defaults. |
Beta Was this translation helpful? Give feedback.
@polarathene As @dopay says, provisioners do not support different chains. So if you want to support 2+ different intermediates sharing the same root or 2+ different chains you will need 2+ instances.
With 2+ different chains, you can add the root for instance2 as a federated certificate in the instance1, and the same the other way around. With that, you can use
step ca federation
to download a pem with all the roots in it.