New intermediate R3 and OCSP

In September 2025 the current R3 is going to expire. For that time a new intermediate must already be issued. Will the key of this new intermediate certificate the same as the current R3, or will it have different key?

If the keys are different, I have a second question.

At this moment the same key is signing the leaf certificates as the OCSP signing certificate's key.
Will the OCSP signing key stay as its certificate signing key for each leaf certificate during the transition period of the intermediate certificate?
Or, will the OCSP signing key suddenly change for the new key even if it is not matching the leaf certificate's signing key?

5 Likes

That's more than 3 years from now :scream: We're just half way the intermediates lifetime.

5 Likes

It affects the OCSP verification configuration scripting for BigIP F5. It is a design decision to be made today. I already assumed that the OCSP signing key always matches the certificate signing key. Even during the intermediate transition period when there are valid certificates overlapping in time, some signed with the old and some signed with the new signing key. I just want to be sure on my design.

6 Likes

In the transition from Let's Encrypt Authority X1 to Let's Encrypt Authority X3 the same keypair was re-used. However the transition from Let's Encrypt Authority X3 to R3 used a new keypair.

If I recall correctly, the X1 transition from X1 to X3 was made early (after less than 1 year) due to an extension issue (X509v3 Name Constraints) causing issues.

Therefore it is likely that a normal, planned transition will involve a new key. That also makes sense from a cryptographic hygiene point of view.

I don't really understand what the question is here, so I'm going to clarify a few things that may be of help.

RFC 6960 states:

The key that signs a certificate's status information need not be the
same key that signed the certificate. It is necessary, however, to
ensure that the entity signing this information is authorized to do
so. Therefore, a certificate's issuer MUST do one of the following:

  • sign the OCSP responses itself, or

  • explicitly designate this authority to another entity

OCSP signing delegation SHALL be designated by the inclusion of
id-kp-OCSPSigning in an extended key usage certificate extension
included in the OCSP response signer's certificate. This certificate
MUST be issued directly by the CA that is identified in the request.

Let's Encrypt has never used a delegated responder certificate for intermediate certificates (they used to have one for the root though).

Therefore OCSP responses for leaf certificates will always be signed by the issuing certificate's key.

In simple words:

If you have a certificate signed by Let's Encrypt Authority X3:

  • All OCSP responses are signed by X3, over the entire certificate's lifetime

If you have a certificate signed by R3:

  • All OCSP responses are signed by R3, over the entire certificate's lifetime

If you have a certificate signed by a future certificate ("R5"):

  • All OCSP responses are signed by "R5", over the entire certificate's lifetime
8 Likes

@Nummer378 , that explanation clears all my uncertanity. Thanks!

6 Likes

But it's not guaranteed to be always true in the future I'd say?

But perhaps @lestaff could enlighten us with how much chance there is of a delegated OCSP signing key for intermediates in the future?

8 Likes

New future intermediates will very, very likely get new keys.

It is possible we decide in the future to switch to delegated OCSP signing, though we don’t have any immediate plans to do so.

9 Likes

Can LE comment on the likelihood of still having the OCSP responses signed by the same key that signed the certificate?

6 Likes

For @bruncsak:

The more relevant bits I got from the spec (thanks, @Nummer378) are in the next paragraphs.

My reading is that your client MUST handle the following, in a situation where there is a migration from R3 to R4:

  • The OCSP is signed by the same certificate (R4) that issued the Leaf Certificate
  • The OCSP is signed by a Delegated Certificate (R4-OSCP), said Delegated Certificate having been signed by the same certificate (R4) that signed the Leaf Certificate

The OCSP could also be signed by a Delegated Certificate (R5-OSCP), said Delegated Certificate NOT having been signed by the same certificate that signed the Leaf Certificate - but your client is not required to accept that by the spec, so the practice is explicitly discouraged.

There is a lot of time to prepare for these 3 scenarios, but IMHO it would be great if ISRG could commit to reducing this down to 1 or 2.

Edited to add: I understand the value and importance of being specs and being RFC compliant, the reality is that implementations are often broken -- especially with ACME stuff as we have recently learned when many (most?) clients hard-coded intermediates. Planning for the simplest migration path to minimize issues - at least for a period of time after the initial changeover - would be in the best interests of the internet as a whole.


Section 4.2.2.2

The CA SHOULD use the same issuing key to issue a delegation
certificate as that used to sign the certificate being checked for
revocation. Systems relying on OCSP responses MUST recognize a
delegation certificate as being issued by the CA that issued the
certificate in question only if the delegation certificate and the
certificate being checked for revocation were signed by the same key.

Note: For backwards compatibility with RFC 2560 [RFC2560], it is not
prohibited to issue a certificate for an Authorized Responder
using a different issuing key than the key used to issue the
certificate being checked for revocation. However, such a
practice is strongly discouraged, since clients are not
required to recognize a responder with such a certificate as an
Authorized Responder.

Systems or applications that rely on OCSP responses MUST be capable
of detecting and enforcing the use of the id-kp-OCSPSigning value as
described above. They MAY provide a means of locally configuring one
or more OCSP signing authorities and specifying the set of CAs for
which each signing authority is trusted. They MUST reject the
response if the certificate required to validate the signature on the
response does not meet at least one of the following criteria:

  1. Matches a local configuration of OCSP signing authority for the
    certificate in question, or

  2. Is the certificate of the CA that issued the certificate in
    question, or

  3. Includes a value of id-kp-OCSPSigning in an extended key usage
    extension and is issued by the CA that issued the certificate in
    question as stated above.


7 Likes

I can say we're unlikely to start using delegated OCSP signers (they increase the size of OCSP responses), but of course I can't guarantee it - if we do choose to do so, it would be the responsibility of Relying Party software to handle it.

@bruncsak can you tell us more about the context of your request? You mention BigIP F5's. If this is for general-purpose OCSP validation, of course you'd need to handle delegated OCSP signing. If it's for an ACME client - ideally that ACME client could be configured to use a range of different providers, now that there are so many ACME CAs. So there may be other providers that use delegated OCSP signing.

10 Likes

BigIP F5 itself handles the OCSP validation internaly, with the condition that the "trusted certificate" is configured correctly for the OCSP object. As the above discussion clearly indicates that always the same key signs the certificate and the OCSP reply (even during the rollover to the new intermediate), I can safely use the certificate's intermediate signing certificate in the role of the "trusted certificate" for the BigIP F5 OCSP objects.

The OCSP validation configured for the certificates is the enabler for the option of OCSP stapling on the virtual hosts. Enabling that option is my goal.

6 Likes

It's entirely possible that BigIP F5 already handles this correctly for the delegated signer case. An OCSP response that uses a delegated signer has to include that signer in the response. So if the F5 API takes a root or intermediate, along with an OCSP response, it should be capable of saying "oh, this OCSP response is signed by a different certificate than the issuer of the end entity certificate I'm validating. Is it the embedded certificate in the response? If so, is that embedded certificate signed by the issuer of the end-entity certificate?"

Hopefully the BigIP docs would indicate this but unfortunately PKI-related docs are often kinda thin.

5 Likes

Buypass (really sorry to summon a competitor here) is using the method of delegated certificate for OCSP signing. This delegated certificate is signed with the intermediate of course.

Intermediate:

-----BEGIN CERTIFICATE-----
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
1YS4d5yABnRwkq6PSaKEvBRshdl84c/Fd7Y=
-----END CERTIFICATE-----

OCSP signer delegated certificate:

-----BEGIN CERTIFICATE-----
MIIEmDCCAoCgAwIBAgILAxdgikkhy5hsvdIwDQYJKoZIhvcNAQELBQAwSzELMAkG
A1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQD
DBRCdXlwYXNzIENsYXNzIDIgQ0EgNTAeFw0yMjA0MDUxMDAwMDBaFw0yMjA3MDQx
MDAwMDBaMEMxCzAJBgNVBAYTAk5PMR0wGwYDVQQKDBRCdXlwYXNzIEFTLTk4MzE2
MzMyNzEVMBMGA1UEAwwMQnV5cGFzcyBPQ1NQMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAzxV6h2wyKKz+fmtns3COiRMv2w+FnDiFH8SuRSnWU99coxmj
tU72QXPO3eCWxkxCBJkJh4UMS/8A8CyGqcE4lvUo0p9Y27tvZKd3UemVP46Fp+Mt
DooxLEBAtYTrNCcJJnZiOethKR00h6+GcDo144cIiZ/5sltPh7qpm1RnnGbOO/tu
LPFSj6hrYqCjkJRvdfw+4GakUY5dDLRez5nFShiOfy/rQHVmCwYAg9YsMnsMgqFD
IX3s5Y6B+0GChY9vvXE/9m9/LSvZhPZMRxdyfHbzuBnpzAV79dYUYJ/Lfu1cZM12
h77A1IUsrw/wTHhEXrYc9eP2q+pmsvaOILmSuQIDAQABo4GEMIGBMAkGA1UdEwQC
MAAwHwYDVR0jBBgwFoAUJ1Kkby0qq0CTkOzWacv+fGE7fEIwHQYDVR0OBBYEFMmQ
EiIJ62ORnAQEM7yJ4OaFr+r4MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggr
BgEFBQcDCTAPBgkrBgEFBQcwAQUEAgUAMA0GCSqGSIb3DQEBCwUAA4ICAQBhKeXb
diFRlwgNc/yzAzb67//LpLBRbP3VAu6OSlU2QpXTnI42IV3GfBZYWnh3cRA4Gg53
qHtLldRaHQr3yEB3GuRmhan/hC6k0UUo/tKRMXbSV5ZUTEm0ICBYeUpahxjv6VMn
/vFIStvgXFbPMiw0i7MMcH6YhyZTIrNccfw94/eBZj0IKPQ+7JLg0C4HbzrW06eD
ITFovHvsQRmlgxLbZptnsCcoBIKq9ajfrseE8uTIwtqkAIeIBPpczxyGjUyH9cld
50jDnK3WSw+Ov6Yw73+qe6rhfBOsFOSTV3fl4i3gaFRO+zVw5803zsZzo2g6EpXJ
0OT/scqt15vdAmbA6m5hsgsfJivVLamu7u8hG793q8CFP+h8yeximZcg98BG1sHu
zgNpZYJ3HOzAN0Pp2gQNpgOLp6164L2YZw8Mph53HV6HZUwRBvOtRNXEcw1kT/yu
mJA8zdj0PmVpC0oaAdLQ75Oa8AnE+yaiKnIr7r1ns9frc5wJ62z9w7nq+I6i/k/r
MHXGfLRhqRO8MNQ5F+LvKfxvnojlMvng3okvhgzf1Bs2xPSUe2mW6H8yUc4G2oe0
68szDxI3pTkTEY0hamsU7XSbGTmtrgXEKelQ0bvCKZXgAQPrKiY9hQ9CPRk+rAXQ
I6vSsuwtcR/mHMlSls8iN+bAPwurKONmxsAsPw==
-----END CERTIFICATE-----
7 Likes

Ah, that's a useful example! And no need to worry about mentioning other ACME CAs here, you won't hurt our feelings. :slight_smile:

9 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.