TL;DR
When a certificate chain expires, your system will likely reject connections relying on it. This guide explains how to diagnose and resolve issues caused by expired certificates, covering checking validity dates, identifying the root cause, and potential fixes like updating trust stores or renewing certificates.
Understanding Certificate Chains
A certificate chain is a hierarchy of digital certificates used to verify the authenticity of a website or service. It starts with your server’s certificate, then includes intermediate certificates leading up to a trusted root certificate authority (CA). If any certificate in this chain is invalid (expired, revoked, etc.), validation fails.
Diagnosing Expired Certificate Issues
- Check the Server Certificate: Use tools like OpenSSL or web browser developer tools to inspect the server’s certificate.
- OpenSSL Command Example:
openssl s_client -connect yourdomain.com:443. Look for the ‘Valid:’ date in the output.
- Browser Developer Tools: In Chrome/Edge, right-click on the page > Inspect > Security tab. Examine the certificate details and validity dates.
- Check Intermediate Certificates: Ensure intermediate certificates are correctly installed on your server. These often come from your CA.
- Incorrect or missing intermediates are a common cause of issues even if the server certificate itself is valid.
- Check Root Certificate Trust Store: Your system needs to trust the root CA that signed the chain.
- Linux/macOS: Root certificates are typically stored in files like
/etc/ssl/certs/ca-certificates.crt(Debian/Ubuntu) or Keychain Access (macOS). - Windows: Certificates are managed through the Certificate Manager (certmgr.msc).
Resolving Expired Certificate Problems
- Renew Your Certificate: The most common solution is to renew your SSL/TLS certificate with your CA. This generates a new certificate and chain.
- Follow your CA’s instructions for renewal, which usually involves generating a new Certificate Signing Request (CSR) on your server.
- Update Trust Stores: If the root CA has changed or been updated, you may need to update your system’s trust store.
- Linux/Ubuntu Example:
sudo apt-get updatesudo apt-get install --reinstall ca-certificates. This updates the list of trusted CAs.
- Correct Intermediate Certificate Installation: Verify that all intermediate certificates are correctly installed in the correct order on your server.
- The order is important – typically, it’s server certificate first, then intermediates, ending with the root (though the root isn’t usually explicitly included).
- Restart Services: After updating certificates or trust stores, restart any affected services (e.g., web servers like Apache or Nginx) to load the new configuration.
- Apache Example:
sudo systemctl restart apache2 - Nginx Example:
sudo systemctl restart nginx
Further Troubleshooting
- Check Configuration Files: Review your web server’s configuration files (e.g., Apache’s
httpd.confor Nginx’snginx.conf) to ensure the correct certificate and intermediate paths are specified. - Use Online Certificate Checkers: Websites like SSL Labs (https://www.ssllabs.com/ssltest/) can provide detailed analysis of your certificate configuration.

