Help thread for DST Root CA X3 expiration (September 2021)

Yes, I did that after the first trying to just re-issuing it. I mean the certificate chain get's generated by the API from letsencrypt, they would know what goes into the chain, right :wink:

With the upgraded version I tried to delete (rename the conf file) the certificate and reissue it. This came up with a certificate from zerossl. This might be fine for many. I didn't want to research this switch right now and wanted back into the letsencrypt ecosystem.

1 Like  --set-default-ca  --server letsencrypt

Yes, I hope this is going to be it. Can't try it right now for this domain, because of rate limiting.

1 Like

Hi! Newbie in this forum. Kindda need some help which I think is related to this topic. Our users keep on seeing Connection not private.

We're experiencing this also with our learning management systems. Good thing that it's not happening in the majority of our users. We've tried some troubleshooting which only worked on a couple of users.

Those troubleshooting are Clear Cache and Cookies, uninstall and reinstall their main browser, double checking if the time & calendar of their desktop is sync, made sure that their browsers are up to date.

I know this isn't much related to the clients OS but those users of our system that affected by it are the ones using windows 7 with a bit old PC, and a handful of windows 10 with updated PCs.

But we still have many users which uses windows 7 with old PCs which didn't encounter this connection not private issue.

1 Like

The fact that there is still the expired X3 certificate in the full chain causes .NET / Mono / Xamarin classes like WebClient, HttpWebRequest and others to fail.

An attached ServerCertificateValidationCallback receives sslPolicyErrors=RemoteCertificateChainErrors as a parameter with 4 certificates in the "chain" parameter (my own, the intermediate, the ISRG Root X1 and the expired DST Root CA X3).
Microsoft's example code on RemoteCertificateValidationCallback Delegate (System.Net.Security) | Microsoft Docs shows to just check for sslPolicyErrors.
There is no way for my application (and probably .NET/Mono/Xamarin) to know which of the certificates in the chain are trusted root certificates and when it MUST early-exit before it fails on expired roots.

Our server APIs are currently not accessible from mobile Android/Xamarin clients due to this and I have no idea how to fix this other than moving to a different CA without expired roots in the chain.

1 Like

3 posts were merged into an existing topic: I have IdenTrust 1 and my Mac OSX is still screwed

7 posts were split to a new topic: Long chain gives warnings in Qualys SSL Server Test

So, that is showing only path #1. That may indeed work for us as we have a ver specific list of browser versions we support for out sites. How do I change my certs to only use/serve the good chain? And if need be, how to switch back?

1 Like

Is anyone running FreeIPA with letsencrypt certs? I've been using them for both the web and LDAP servers, and could always install a new cert with ipa-server-certinstall . Now however I get this error message and cannot install the new certificates

CA certificate CN=DST Root CA X3,O=Digital Signature Trust Co. in /etc/letsencrypt/live/XXX/cert.pem, /etc/letsencrypt/live/XXX/privkey.pem is not valid: certutil: certificate is invalid: The certificate issuer's certificate has expired. Check your system date and time.

The ipa-server-certinstall command failed.

1 Like

You need to specify "ISRG Root X1" as your preferred chain when generating certificates. The exact process for doing so will depend on what software you're using.

As for switching back, if you stop specifying a preferred chain then you'll go back to generating certs with the default chain.

1 Like

I work on a macbook (Catalina 10.15.7) and develop a webapp on my local machine. I use the email testing service to check outgoing emails. I haven't changed anything, but a few days ago the mailtrap service gives back the below error message:

ErrorException stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Illuminate\Foundation\Bootstrap\HandleExceptions::handleError vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:94

Mailtrap advises the following:

Regarding SSL error while trying to send emails to Mailtrap: You are not alone. Please update your OpenSSL version You might hear about the global issue with Letsencrypt certificates: its old root certificate expired on Sep 30. Mostly it impacted clients who use OpenSSL versions prior 1.1.0. The most common solution is to update your OpenSSL. If you can’t do that read the recipe for v.1.0.2 from OpenSSL.

My first approach was to remove the expired certificate and install the some new ones. I removed the DST Root CA X3 section from /etc/ssl/cert.pem file and removed all DST Root CA X3 instances using the Keychain Access app. Then I installed the ISRG Root X1 and ISRG Root X2 using the Keychain Access app setting them to always trust. Unfortunately I still get the same error message after rebooting.

The secong approach would be update OpenSSL on my machine. The "openssl version" command tells me that I have LibreSSL 2.8.3 on my machine, so I assume this is what I need to update. Checking the libreSSL release notes it seems that there already a fix for this problem. But I'm a little concerned that I mess-up my mac with this procedure.

Am I on the right track? Should I update LibreSSL to the latest version? How do I do that? Are there any side-effects? Are there any better solutions to this problem?

Any advice would be highly appreciated!
Thanks! W.

1 Like

2 posts were split to a new topic: Expired R3 chain

I have not yet been able to figure out how to issue that command successfully. Using certbot on Ubuntu with Nginx. Tried
sudo certbot --preferred-chain "ISRG Root X1"


6 posts were split to a new topic: iOS and Android issue

That is the correct way to use that parameter:

But, it requires having certbot v1.12.0(or higher)
Which certbot version are you using?
certbot --version


Am I right assuming that renewal of the certificates will not solve the issue ? We have some clients who still have a chain pointing to expired certificate. Other than them updating their OS and/or browsers is there anything I can do as service provider ?

1 Like

Correct, usually the end leaf certificate is perfectly fine and valid. However, with some ACME clients, if the server operator would want to use the "short" certificate chain, the only way to force the client to retreive the short chain from the ACME server is to force a renewal in combination with "get me the short chain" option for the ACME client (with certbot you'd use --preferred-chain "ISRG Root X1").


@Osiris thanks a lot for clarifying, I'm using auto-ssl/lua-resty-auto-ssl with resty to generate certificate for few hundred websites and I think it uses dehydrated under the hood which supports preferred-chain option. However it's a big hassle to generate few hundred certificates. Also what's interesting when I check the chain on my machine I get short version but for the same certificate the clients who have issues get longer chain, that's why I'm not sure if regenerating will solve it at all?


If you're "checking the chain" using a browser, then note that this is not a good way to check which chain your server is sending. It only shows one of the possible chains a browser can make. And browsers often can make a few different chains. It's better to use openssl s_client -connect $hostname:443 -servername $hostname or online checkers such as .

Also note that if you choose to use the short chain and the actual issue your clients have is a lack of ISRG Root X1 in their certificate root store, the short chain won't fix anything.


Thanks @Osiris the issue with client is that her browser shows ISRG Root X1 -> DST Root CA X3 and the last one being expired. Would this mean then I can then regenerate with short chain this one and then it will be just fine ? What I'm afraid of is that in her browser ISRG Root X1 might still point to expired one.