证书过期的代价
SSL证书过期是网站安全事故的常见原因。浏览器会显示醒目的安全警告页面,直接导致用户流失。2020年Microsoft Teams因证书过期导致全球服务中断3小时。自动化监控是避免此类事故的关键。
监控方案
自建监控(推荐)
使用Prometheus + ssl_exporter实现证书监控。ssl_exporter通过TLS连接探测目标域名的证书信息。Grafana面板展示所有域名的证书到期时间、签发CA、密钥算法等信息。告警规则:到期天数小于30天Warning,小于7天Critical。
云服务方案
- UptimeRobot:免费版支持50个域名的SSL监控,到期前提醒
- StatusCake:SSL监控+HTTPS性能监控一体化
- Keychest:专注SSL证书管理,支持CT Log监控
命令行脚本
简单的Shell脚本通过openssl检查证书到期时间,配合cron定期执行。适合小规模部署。脚本检查所有域名的证书到期天数,低于阈值时发送邮件或Slack通知。
证书透明度监控
Certificate Transparency(CT)是公开的证书签发日志。监控CT Log可以发现:未授权的证书签发(有人为你的域名签了证书)、子域名发现(通过CT Log发现新的子域名)、合规审计(确认只使用了授权CA签发的证书)。工具:crt.sh网页查询、certspotter API实时监控。
自动化续期最佳实践
- 使用certbot + systemd timer 或 cron job自动续期
- 续期后hook脚本自动reload Web服务器
- 定期dry-run测试确保续期流程正常
- 多台服务器使用同一证书时,通过配置管理工具(Ansible/Puppet)同步分发