SSL rotation = replacing the cert before expiry. Correct flow: 30 days before expiry obtain a new cert, drop it next to the old one, hot-reload the web server. Clients in handshake don't notice. Let's Encrypt auto-renews via the certbot timer; commercial CA = manual renew + replace fullchain.pem + reload.
Below: step-by-step, working examples, common pitfalls, FAQ.
certbot renew --dry-run — verify renew logic without writingcertbot renew or download from commercial CAfullchain.pem + privkey.pem in the nginx config pathnginx -t && nginx -s reload (or systemctl reload nginx)| Scenario | Config |
|---|---|
| Let's Encrypt auto-renew timer | systemctl enable --now certbot.timer # renews + reload nginx hook |
| Force renew before expiry | certbot certonly --force-renewal -d example.com -d www.example.com |
| Renew on Nginx Plus | nginx -s reload # zero-downtime worker restart |
| Commercial CA manual | cat cert.pem intermediate.pem > fullchain.pem; cp fullchain.pem /etc/ssl/; nginx -s reload |
| Check active cert dates | openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -noout -dates |
SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.
Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).
Full chain verification: from leaf certificate through intermediates to root CA.
Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.
Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.
SSL certificate monitoring
TLS config audit
HTTPS as ranking factor
customer trust
www and subdomains.Strict-Transport-Security header forces browsers to always use HTTPS.SSL certificate monitoring, check history and alerts 30 days before expiry.
Sign up freeCertbot auto-renew fires when <30 days to expiry. LE cert validity is 90 days → ~6 renews/year.
Reload (SIGHUP) is enough — worker processes re-init gracefully. Restart = downtime.
Certbot deploy hook: <code>certbot renew --deploy-hook "systemctl reload nginx"</code> or at /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh.
Urgent renew + reload. If <code>certbot renew</code> fails due to rate limits: <code>certbot certonly --force-renewal</code>.