-1

I have a key pair which I used to generate a CSR.
Once I enrolled that CSR PKCS10, I get from the PKI (or CA) a certificate signed with the PKI private key.

From here, I would like to know if my private key is useful in any way in regards of the certificate that has been signed with the PKI private key?

As far as I understood, the key pair that served to generate the CSR has only one purpose : allow the PKI to decrypt the content of that CSR with the public key that is included in the CSR. Once the PKI returned that certificate, my private key becomes useless.

1
  • Please do not add answers to the question. And if you need to correct your question, please edit it directly and in-line.
    – schroeder
    Nov 24, 2023 at 9:51

2 Answers 2

1

The CSR isn't encrypted generally. If it's an RFC 2986 Certification Request (otherwise known as PKCS#10), then it will be signed by your private key as part of the proof of possession for that private key.

Once your certificate has been issued, you will need to use your private key for any digital signatures you create. These signatures are verified by the recipient using the matching public key which is held in, and certified by the CA, in your certificate.

Alternatively, if someone wants to encrypt a (short) message to you, they use the public key, which the extract from your certificate, to encrypt the message. You'll then need to use your private key to decrypt the message.

Don't throw it away!

9
  • I think I understood and it seems clear. I tried to make a diagram out of it, could you take a look and let me know if I did not misrepresent what you have said? Thank you
    – MoBe
    Nov 21, 2023 at 16:02
  • The CA doesn't encrypt anything. It merely signs your public key and subject name (plus a few other details) to make your certificate. Nov 21, 2023 at 16:05
  • Ok, then i'm still confused, but it's getting clearer. What does it mean for a CA to sign/encrypt the public key (plus a few other details) if i don't unsign/decrypt it with something (its public key). And where does this process happen and what is its purpose.
    – MoBe
    Nov 21, 2023 at 16:12
  • Oh, I think i got my mistake. When you said : the CA signs my certificate, you meant it's just present in the certificate such as "certificate issuer : CA-name". So it's not encrypting anyhting, the certificate just says: certified by Ca-name.
    – MoBe
    Nov 21, 2023 at 16:20
  • Partially. As you say, the CA's name is embedded as the Issuer, then all that information is digitally signed by the CA's private key. You can see this signature when you view the certificate with OpenSSL (or similar tool). This signature is the certification by the CA. Relying parties (clients) can verify the signature as they will have a copy of the CA's public key in the CA's certificate. Nov 21, 2023 at 17:22
0

Your diagram is wrong in several ways.

First: "Signing" and "encrypting with the private key" are NOT the same thing. As a detail of the RSA algorithm, signing is mathematically very similar to encrypting; but there are a lot of differences. Never, ever, ever, ever say "encrypting with the private key" (it makes no sense). The four verbs of RSA are Sign, Verify, Encrypt, Decrypt. Two are public key operations, two are private key operations. DSA, ElGamal, ECDSA all have Sign/Verify but their Sign/Verify look nothing like RSA encryption.

  1. Generate an asymmetric key pair (RSA, ECC (ECDSA/ECDH), some PQC thing, etc)
  2. Generate a CSR/PKCS#10 CertificationRequest. This contains your public key, a suggested subject name, and potentially requested certificate extensions. Then it's signed with your (private) key.
  3. Send the CSR to a CA.
  4. The CA (probably) verifies the signature of your CSR using the embedded (public) key.
  5. The CA extracts the public key, then decides if they want to respect any of the other data in your CSR (they don't have to).
  6. The CA makes up a certificate for you using whatever information they want, except the embedded public key will be yours. This certificate is signed with the CA (private) key.
  7. The CA sends you the certificate, or notifies you it's ready for download, or whatever.
  8. End of story. The certificate isn't encrypted... it's signed. Anyone can read it. Anyone who wants to can verify the signature.

So, what happens to the keypair? You keep it. Only you have the private key. You need to keep using it if you want to sign things, or decrypt things. Depending on your OS, library, tool, etc; it may get moved into some special storage location to track that it is paired with a certificate... but that's hard to say without further specificity in the question.

7
  • You are right, I just realized that mistake in my diagram. Well it's more like, i missed a step which is: I encrypt with the CA's public key the CSR that has been signed with my private key. For me it was obvious, yet, it could be misleading, I will fix it. Step 6, you are right again, I went too fast and introduced mTLS which was not intended. As for step 7, it's what I meant by encryption/decryption, or like you said, signed/unsigned. I find it a bit hard to make the difference for now, it'll get clearer over time. (let's hope for that). Thanks for pointing all out.
    – MoBe
    Nov 21, 2023 at 19:09
  • I made the corrections. I'm still using the terms sign/encrypt as if they were the same, I also understand there is a subtle difference, I just don't fully make the distinction yet. Hoping I would not confuse anybody else. And If I missed something else, let me know about it and I'll do my best to improve my understanding. I don't want to mislead nobody. Again, I appreciate your help.
    – MoBe
    Nov 21, 2023 at 19:51
  • @mobe You shouldn't use sign and encrypt as if they're the same. DSA/ECDSA/ElGamal can sign, but can't encrypt (they have no such operation). It's not just convenient speech, it's wrong. And there's nothing at all that corresponds to "encrypt with the CA's public key the CSR". The CSR never touches the CA public/private keypair.
    – bartonjs
    Nov 21, 2023 at 21:48
  • Communicating with CA's server happens through TLS. My understanding is, anytime I would like to communicate with the server, I'm using the public key and the server uses the private key to decrypt it. So the CSR, which is included in my enrolment request, is encrypted. (it's just the order of the step maybe?)
    – MoBe
    Nov 22, 2023 at 7:30
  • I also replaced : "CA decrypts CSR" with "CA verifies signature" to respect the terminology. You're right indeed, if I sign something, I expect someone to verify it and not really decrypt it. However, I'm still not convinced on the TLS part, where the message is encrypted with CA's public key (a message that includes the CSR)
    – MoBe
    Nov 22, 2023 at 8:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .