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证书的一站式申请、更新、部署、监控和管理。