As part of working on a brand new API, we use LetsEncrypt for generating ssl certificates.
LetsEncrypts current X3-certificate expires at september 2021. They originally planned on making the X4 the default as of september 29 2021 (yesterday).
I struggle to find out if it is possible for me to force my LetsEncrypt to use the new X4-certificate. This way, our new customers on the new API will be faced with potential ceritificate issues upfront (if there servers don't trust the X4) instead of having an issue later when we choose to renew the cerificate to the X4.
Can anyone tell me if this is possible or point me at a direction of such information.
Source: Chain of Trust which also contains all the intermediate certificates, cross-signed and signed by the ISRG root(s).
I think you mean the transition from the "DST Root CA X3" to the "ISRG Root X1"?
Also, you can "force" a different root certificate by choosing a different intermediate certificate, as long as the public key in that intermediate certificate is the same. As all end leaf certs are currently signed by the Let's Encrypt Authority X3 intermediate certificate cross-signed by the DST Root CA X3 root, you could change your webservers certificate chain to contain the intermediate certificate signed by ISRG Root X1.
To this point - yes, it is possible to do that today.
As @Osiris mentions, I think what you mean to ask is whether there's way to force your LetsEncrypt to use the ISRG-signed intermediate (whether X3 or its successor R3, doesn't matter), so that your customers can be faced with potential certiifcates issues upfront, if their servers don't trust the ISRG root.
It depends what ACME client you use, but quite a lot of them now support selecting which root certificate to prefer. You just need to tell your client to prefer the "ISRG Root X1" root (or even manually substitute the intermediate).
Thank you so much for the clarification. You are absolutely right; I mixed up the certificates and your assumptions of my question was right.
I am using certbot.
Question A)
Does your solution of " you could change your webservers certificate chain to contain the intermediate certificate signed by ISRG Root X1." imply, that I edit the pem-chain file manually after generating the certificate? Or is there are more fail-safe way to do it automatically using certbot?
Question B) Is it certain that letsEncrypt will, before september 2021 end up only issuing certificates requiring clients to trust the non-cross signed version or is there a chance that "DST Root CA X3" will instead be replaced with another cross-signed certificate to allow for the great internet to not break next year?
Like @_az said: it depends on your ACME client. certbot has a new flag (see the post I referenced to above) for it. If you only have just a single or a few certificates, I can imagine you'd re-issue those certs with that new flag set to the ISRG root. But manually modifing the PEM files isn't that hard.. Unfortunately, if you do it by hand, certbot won't remember it for the next renewal. So it's probably best to let certbot do all the work.
Not sure about that. Not sure if it's even possible. Also, "break the internet" is a little bit strong I think. Only older clients are affected. Probably clients which should have been updated due to lack of security updates anyway.
I have a draft announcement for Certbot here which includes a one-liner (just replace DST Root CA X3 with ISRG Root X1). It hasn't been published yet, but might be helpful for you. Keep in mind that it will only kick in at your next renewal, so you might be better off manually substituting the second certificate in your fullchain.pem if you want to just test this out.
If you are developing your own API and/or using a client library you should look at the Link sections of the response header returned when you request your cert (after completing domain validation): https://acme-v02.api.letsencrypt.org/acme/cert/abcd123
It would maybe be nice if letsencrypt.org (the main website, not the api etc) transitioned to the ISRG root now, so we could test clients apps/browsers by just pointing them to that site, or maybe there is a site to test with already?
The alternate root is currently linked in the production environment, meaning it's ready for use in production, whether or not you consider it testing is relative.
Let's Encrypt themselves are postponing the date of using their own root certificate for production.. Would be weird to implement it on their main site anyway.
Easy to build an alternate chain that is valid till september 2021 .
Is there a chance to use Intermediate CA R3 now ?
B2B Websites do not really care about old android devices. Using R3 as intermediate CA would give me a setup that can run till 2025 without problems with expiry.
Is there a software that can enforce "R3" as the issuer of my certificate ? (No problem to script the Root Chain to X1 or X3 afterwards)
that there have been no certificates issued under this intermediate at all yet. So you'll have to wait a little longer for issuance using it to begin.
The announcement post said
We expect to switch our primary issuance pipeline to use R3 later this year, which won’t have any real effect on issuance or renewal.
I don't know exactly when "later this year" refers to. I was somehow imagining "about two update windows", but that's not based on anything Let's Encrypt staff have told me.