T The Triage ManualTechnical Guides for IT Emergencies
P3 · PKI & Certificate Management

cURL Error 60 – DST Root CA X3 Expiry Breaks HTTPS on Ubuntu 14

On Ubuntu 14 (end-of-life) servers, all HTTPS requests to Let's Encrypt-secured sites fail with cURL error 60 ('SSL certificate problem: certificate has expired') because the DST Root CA X3 root certificate expired on 30 September 2021 and remains trusted in the local CA store. The remote certificates are valid; the fault lies entirely in the outdated local trust store. The fix is to deselect mozilla/DST_Root_CA_X3.crt via dpkg-reconfigure ca-certificates, which removes the expired root from the trusted set.

Indicators

Likely causes

Diagnostic steps

  1. Reproduce the error: run 'curl -v https://website.com' and confirm error 60 with the message 'SSL certificate problem: certificate has expired'.
  2. Verify the remote certificate chain is valid: run 'echo -n | openssl s_client -showcerts -connect website.com:443 -servername website.com' and confirm the server's certificate and intermediates are within their validity period.
  3. Locate DST Root CA X3 in the local trust store: check for '/etc/ssl/certs/DST_Root_CA_X3.pem' or list entries with 'ls /etc/ssl/certs/ | grep -i DST'.
  4. Confirm the expiry date of the local DST Root CA X3 certificate: run 'openssl x509 -in /etc/ssl/certs/DST_Root_CA_X3.pem -noout -dates'. Expect 'notAfter=Sep 30 14:01:15 2021 GMT', confirming this root is the cause.
  5. Cross-check the ca-certificates configuration file to confirm DST_Root_CA_X3.crt is marked as trusted: run 'grep -i DST /etc/ca-certificates.conf'.

Resolution path

Prevention

Tools

References

ubuntu-14curlerror-60lets-encryptssltlsDST-Root-CA-X3ca-certificatescertificate-expiryopenssltrust-storeend-of-lifedpkg-reconfigureISRG-Root-X1cross-signed-certificate