Skip to main content

SSL证书监控与告警:确保证书永不过期

· 6 min read
OHTTPS

SSL证书过期是网站管理员最担心的问题之一。证书过期会导致网站无法正常访问,严重影响用户体验。本文将详细介绍如何监控SSL证书状态,设置证书到期提醒和告警,确保证书永不过期。

一、证书监控的重要性

1. 证书过期的后果

业务影响

  • 网站无法正常访问
  • 用户看到安全警告
  • 降低用户信任度
  • 可能导致业务损失

技术影响

  • 需要紧急更新证书
  • 可能影响多个服务
  • 需要协调多个团队

2. 监控的好处

  • ✅ 提前发现证书即将过期
  • ✅ 有足够时间更新证书
  • ✅ 避免紧急情况
  • ✅ 保障业务连续性

二、OHTTPS证书监控

1. 创建监控任务

  1. 登录OHTTPS平台
  2. 进入"证书监控"页面
  3. 点击"创建监控"
  4. 填写监控信息

2. 监控配置

监控域名

  • 输入要监控的域名
  • 可以监控任何域名的证书

监控端口

  • 默认443端口
  • 可以自定义端口

监控IP

  • 可选,指定监控的IP地址
  • 支持多IP监控

3. 通知设置

邮件通知

  • 证书到期前20天自动提醒
  • 可以设置多个通知邮箱

通知频率

  • 到期前20天首次提醒
  • 到期前7天再次提醒
  • 到期前1天最后提醒

三、自建监控方案

1. 使用脚本监控

创建监控脚本 check-cert.sh

#!/bin/bash

DOMAIN="example.com"
DAYS_BEFORE_EXPIRE=30
NOTIFY_EMAIL="admin@example.com"

# 获取证书到期时间
EXPIRE_DATE=$(echo | openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)

# 转换为时间戳
EXPIRE_TIMESTAMP=$(date -d "$EXPIRE_DATE" +%s)
CURRENT_TIMESTAMP=$(date +%s)

# 计算剩余天数
DAYS_LEFT=$(( ($EXPIRE_TIMESTAMP - $CURRENT_TIMESTAMP) / 86400 ))

# 检查是否需要提醒
if [ $DAYS_LEFT -lt $DAYS_BEFORE_EXPIRE ]; then
echo "证书将在 $DAYS_LEFT 天后过期!" | mail -s "SSL证书即将过期警告" $NOTIFY_EMAIL
fi

2. 设置定时任务

# 添加到crontab
crontab -e

# 每天检查一次
0 0 * * * /path/to/check-cert.sh

四、第三方监控工具

1. UptimeRobot

功能

  • 监控SSL证书到期时间
  • 发送邮件和短信提醒
  • 免费版支持50个监控

配置

  1. 注册UptimeRobot账号
  2. 添加SSL证书监控
  3. 设置通知方式

2. Pingdom

功能

  • 监控SSL证书状态
  • 发送告警通知
  • 提供详细报告

配置

  1. 注册Pingdom账号
  2. 添加SSL监控
  3. 配置告警规则

3. SSL Labs API

功能

  • 使用SSL Labs API监控
  • 获取详细SSL信息
  • 可以集成到自己的系统

使用

curl "https://api.ssllabs.com/api/v3/analyze?host=example.com"

五、监控最佳实践

1. 监控策略

多级提醒

  • 到期前30天:首次提醒
  • 到期前7天:再次提醒
  • 到期前1天:紧急提醒

多渠道通知

  • 邮件通知
  • 短信通知(重要证书)
  • 钉钉/企业微信通知
  • 电话通知(紧急情况)

2. 监控范围

所有证书

  • 生产环境证书
  • 测试环境证书
  • 内部系统证书
  • CDN证书
  • 负载均衡证书

3. 监控频率

检查频率

  • 每天检查一次(推荐)
  • 每周检查一次(次要证书)
  • 实时监控(关键证书)

六、告警配置

1. 告警级别

警告级别

  • 到期前30天:警告
  • 到期前7天:重要警告
  • 到期前1天:紧急警告

2. 告警方式

邮件告警

  • 发送到管理员邮箱
  • 包含证书详细信息
  • 包含更新链接

短信告警

  • 重要证书使用短信
  • 紧急情况使用短信
  • 需要短信服务支持

系统告警

  • 集成到监控系统
  • 发送到告警平台
  • 记录到日志系统

七、证书更新流程

1. 发现证书即将过期

  1. 收到监控告警
  2. 确认证书到期时间
  3. 评估影响范围

2. 准备更新

  1. 申请新证书
  2. 准备更新计划
  3. 通知相关团队

3. 执行更新

  1. 更新证书
  2. 部署到服务器
  3. 验证证书有效性

4. 验证和确认

  1. 检查HTTPS访问
  2. 使用SSL测试工具验证
  3. 确认所有服务正常

八、自动化监控和更新

1. 使用OHTTPS自动更新

  1. 在证书配置中启用自动更新
  2. 设置提前更新天数(推荐30天)
  3. 配置自动部署
  4. 系统自动更新和部署证书

2. 使用acme.sh自动更新

# acme.sh会自动创建cron任务
# 证书到期前30天自动更新
crontab -l | grep acme.sh

3. 使用Certbot自动更新

# Certbot会自动创建systemd timer
# 证书到期前30天自动更新
sudo systemctl list-timers | grep certbot

九、常见问题

1. 监控不准确

问题:监控显示证书过期,但实际未过期

解决方法

  • 检查监控脚本逻辑
  • 确认时区设置
  • 验证证书实际到期时间

2. 告警未收到

问题:证书即将过期但未收到告警

解决方法

  • 检查邮箱设置
  • 检查垃圾邮件
  • 验证告警配置

3. 误报问题

问题:频繁收到误报警告

解决方法

  • 优化监控脚本
  • 设置合理的告警阈值
  • 过滤误报情况

十、最佳实践总结

1. 监控配置

  • ✅ 监控所有证书
  • ✅ 设置多级提醒
  • ✅ 使用多渠道通知
  • ✅ 定期检查监控状态

2. 自动化

  • ✅ 使用自动更新功能
  • ✅ 配置自动部署
  • ✅ 减少人工干预

3. 应急准备

  • ✅ 准备应急更新流程
  • ✅ 记录证书信息
  • ✅ 建立更新文档

总结

SSL证书监控是保障网站安全的重要措施。通过设置监控和告警,可以提前发现证书即将过期,有足够时间更新证书,避免紧急情况。

关键要点

  • ✅ 监控所有证书
  • ✅ 设置多级提醒
  • ✅ 使用自动化工具
  • ✅ 准备应急流程

如果您需要监控SSL证书,推荐使用OHTTPS平台,它提供了完整的证书监控功能,包括自动提醒、自动更新和自动部署,让证书管理变得简单高效。

OHTTPS: 免费HTTPS证书/SSL证书申请 • 自动化更新、部署、监控
OHTTPS 支持通过多种域名验证方式(DNS验证、HTTP验证、文件验证等)申请免费的HTTPS证书/SSL证书,包括单域名证书、多域名证书、通配符证书、IP证书等,支持HTTPS证书/SSL证书的自动化更新、自动化部署、自动化监控及告警等,并支持将HTTPS证书/SSL证书自动化部署至阿里云、腾讯云、群晖NAS、百度云、七牛云、多吉云、又拍云、宝塔面板、Docker容器、SSH等,实现HTTPS证书/SSL证书的一站式申请、更新、部署、监控和管理。