所有部署指南 部署

SSL 證書監控:工具和配置指南

SSL 監控不僅僅是檢查過期日期。完善的監控體系需要關注:即將過期的證書、配置變更、未授權的證書籤發以及 SSL 錯誤導致的停機。

隨著證書有效期在 2029 年縮短至 47 天,主動監控變得不可或缺——錯過一次續簽就會讓你的網站下線。

需要監控什麼

專案原因頻率
證書過期過期證書 = 網站下線每天
證書鏈不完整的證書鏈 = 部分裝置失敗每週
TLS 版本舊 TLS 版本會被瀏覽器禁用每月
CT 日誌檢測為你域名未授權簽發的證書持續
OCSP staplingStapling 失敗會降低效能每週
HSTS 頭缺少 HSTS = 容易受到降級攻擊每月

免費監控方案

1. Cron 指令碼(自託管)

#!/bin/bash
# /usr/local/bin/ssl-monitor.sh
DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
ALERT_EMAIL="admin@example.com"

for domain in $DOMAINS; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)

  if [ -z "$expiry" ]; then
    echo "ERROR: Can't connect to $domain:443" | mail -s "SSL Monitor: $domain unreachable" $ALERT_EMAIL
    continue
  fi

  expiry_epoch=$(date -d "$expiry" +%s 2>/dev/null)
  now_epoch=$(date +%s)
  days_left=$(( (expiry_epoch - now_epoch) / 86400 ))

  if [ "$days_left" -lt "$WARN_DAYS" ]; then
    echo "$domain certificate expires in $days_left days ($expiry)" | mail -s "SSL Expiry Warning: $domain" $ALERT_EMAIL
  fi
done
# Add to crontab — run daily at 9am
0 9 * * * /usr/local/bin/ssl-monitor.sh

2. UptimeRobot(SaaS — 免費版)

  1. UptimeRobot 註冊
  2. 新增監控 → 型別:HTTPS
  3. 輸入你的域名 URL
  4. 設定 SSL 過期告警:過期前 30 天
  5. 配置告警:郵件、Slack、Webhook

UptimeRobot 每 5 分鐘檢查一次,對停機和證書過期都會告警。

3. Certificate Transparency 監控

監控 CT 日誌 中為你域名未授權簽發的證書:

服務方式費用
Cert Spotter (SSLMate)新證書郵件告警免費版
crt.sh手動搜尋免費
Facebook CT MonitorFacebook 的監控工具免費

付費監控工具

工具功能價格
Better UptimeSSL + 可用性 + 事件管理免費版 / $20+/月
Datadog完整基礎設施監控含 SSL 檢查$15+/主機/月
PingdomSSL + 可用性 + 效能$10+/月
StatusCakeSSL 監控 + 告警免費版 / $20+/月

完整監控配置示例

對於生產站點,組合多個層次:

Layer 1: Certbot auto-renewal (prevents expiry)
Layer 2: Cron script (catches renewal failures — daily email)
Layer 3: UptimeRobot (catches SSL errors — 5-min checks)
Layer 4: CT monitoring (catches unauthorized certs — continuous)

這提供了縱深防禦——沒有單點故障。

配合 GetHTTPS 的監控

GetHTTPS 不包含內建監控(它是證書籤發工具)。但你的工作流應該是:

  1. 用 GetHTTPS 簽發證書
  2. 設定續簽提醒 — 日曆提醒在第 60 天(共 90 天)
  3. 新增 SSL 監控 — cron 指令碼或 SaaS 工具作為備份
  4. 考慮 Certbot 用於生產環境的自動續簽

常見問題

最低限度應該有什麼監控?

至少:證書續簽的日曆提醒(90 天中的第 60 天)加上自動檢查(cron 指令碼或 UptimeRobot)。日曆提醒處理正常續簽;自動檢查捕獲失敗情況。

如何監控多個域名?

上面的 cron 指令碼在迴圈中處理多個域名。SaaS 工具如 UptimeRobot 讓你新增多個監控——每個域名一個。

應該監控暫存/開發環境的證書嗎?

如果它們是會過期的 Let’s Encrypt 證書,是的。過期的暫存證書會阻塞 QA 和開發。至少設定日曆提醒。

如何監控證書鏈,而不僅是過期?

SSL Labs API 提供自動化的證書鏈驗證。快速手動檢查:

echo | openssl s_client -connect example.com:443 2>/dev/null | grep "Verify return code"

將此新增到你的 cron 指令碼中進行證書鏈監控。

相關文章

部署 2026-05-07
如何檢查 SSL 證書過期時間
使用瀏覽器、OpenSSL 或線上工具檢查 SSL 證書的過期時間。設定監控以避免意外過期和服務中斷。
SSL 與憑證 2026-05-08
證書透明度:如何監控你域名的證書籤發情況
證書透明度(CT)日誌記錄了每一張公開簽發的 SSL 證書。瞭解 CT 的工作原理、如何監控你的域名是否有未授權證書,以及如何使用 crt.sh。
SSL 與憑證 2026-05-07
SSL 證書有效期:47 天變更詳解
CA/Browser Forum 投票決定到 2029 年將 SSL 證書有效期縮短至 47 天。瞭解時間線、對你網站的影響,以及如何準備。
快速開始 2026-05-07
如何續簽 Let's Encrypt 證書
Let's Encrypt 證書每 90 天過期。瞭解如何透過 GetHTTPS(手動)或 Certbot(自動)續簽,併為 47 天有效期做好準備。
在瀏覽器中取得免費 SSL 憑證
無需安裝,無需帳號。私鑰始終留在你的裝置上。
取得憑證